私の WPF アプリケーションには、ObservableCollection にバインドされた DataGrid があります。
<DataGrid x:Name="DataGridTeilnehmer" HorizontalAlignment="Left" VerticalAlignment="Top" CellEditEnding="DataGridTeilnehmer_CellEditEnding" AutoGenerateColumns="False" SelectionMode="Single">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Teilnehmer" CellEditingTemplate="{StaticResource TeilnehmerEditTemplate}" CellTemplate="{StaticResource TeilnehmerCellTemplate}" />
<DataGridComboBoxColumn Header="Pass" />
...
DataGridComboBoxColumn には、各行の個別の値が入力されます。値は、最初の列のエントリによって異なります。したがって、次のように CellEditEnding イベントにデータを設定したいと思います。
private void DataGridTeilnehmer_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
if (!commiting)
{
commiting = true;
DataGridTeilnehmer.CommitEdit(DataGridEditingUnit.Row, false);
commiting = false;
// check, whether it is the first column that has been edited
if (...)
// get the list<string> for the combobox depending on the edited content
// get the combobox of the current row and bind the calculated list<string> to it
}
}
}
これどうやってするの?
編集:私が達成しようとしているものの例。
それぞれ個別のチケットを持っている顧客のリストがあります。最初の列で顧客が選択されたら、この顧客が持っているチケット リストを読み込み、次の列 (コンボボックス列) に読み込みます。
前もってありがとう、
フランク