作成日: 2024/12/25 最終更新日: 2024/12/25
文書種別
使用方法
詳細
コンボボックス型のセルで、ドロップダウン項目を選択した時に何らかの処理を行うには、PrepareCellForEditイベント内で、エディタのChildプロパティからC1FlexComboBoxを取得し、そのListBox.SelectionChangedイベントを利用することができます。
以下に、簡単な設定コードを記載します。

◎サンプルコード(C#/.NET Framework)
以下に、簡単な設定コードを記載します。
◎サンプルコード(C#/.NET Framework)
(MainWindow.xaml.cs)
using C1.WPF.FlexGrid;
namespace prj_wpf_FlexGrid
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
List comboList = new List() { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE"};
// コンボボックスの設定
c1FlexGrid1.Columns[0].ValueConverter
= new ColumnValueConverter(comboList, true);
c1FlexGrid1.PrepareCellForEdit += c1FlexGrid_PrepareCellForEdit;
}
private void c1FlexGrid_PrepareCellForEdit(object sender, CellEditEventArgs e)
{
if (c1FlexGrid1.Columns[0].Index == e.Column)
{
if (e.Editor is Border)
{
var bdr = e.Editor as Border;
if (bdr.Child is C1FlexComboBox)
{
var cmb = bdr.Child as C1FlexComboBox;
// 項目選択時の処理
cmb.Loaded += (s1, e1) =
{
cmb.ListBox.SelectionChanged += ListBox_SelectionChanged;
};
}
}
}
}
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.RemovedItems.Count 0 || e.AddedItems.Count 0)
MessageBox.Show("Changed from " + e.RemovedItems[0] + " to "+ e.AddedItems[0]);
}
}
}
(ViewModel.cs)
namespace prj_wpf_FlexGrid
{
public class ViewModel : INotifyPropertyChanged
{
//プロパティ
[field: NonSerialized]
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public ObservableCollection DataList { get; set; }
public ViewModel()
{
DataList = new ObservableCollection();
DataList.Add(new Data("AAAA"));
}
}
public class Data : INotifyPropertyChanged
{
//プロパティ
[field: NonSerialized]
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public Data(string sampleNo)
{
SampleNo = sampleNo;
}
private string _SampleNo = "";
public string SampleNo
{
get { return _SampleNo; }
set
{
if (_SampleNo == value) return;
_SampleNo = value;
OnPropertyChanged("SampleNo");
}
}
}
}
関連情報
※本ナレッジに、サンプルプロジェクトを添付します