У меня есть модель
public class UCClipProcessingModel : BaseModel
{
public ObservableCollection<ClipProcessingGridItem> GridItems { get; }
= new ObservableCollection<ClipProcessingGridItem>();
}
, и есть элементы
public class ClipProcessingGridItem: IValidable
{
public MCClipFolder ClipFolder { get; set; }
public MCGeoCalibFolder SelectedGeoCalibrationFolder { get; set; } = MCGeoCalibFolder.EMPTY();
public ObservableCollection<MCGeoCalibFolder> GeoCalibrationFolders { get; set; }
= new ObservableCollection<MCGeoCalibFolder>();
public MCColorCalibFolder SelectedColorCalibrationFolder { get; set; } = MCColorCalibFolder.EMPTY();
public ObservableCollection<MCColorCalibFolder> ColorCalibrationFolders { get; set; }
= new ObservableCollection<MCColorCalibFolder>();
public bool IsValid()
{
return true;
}
}
Итак, в моем .xalm
в качестве контекста я использую UCClipProcessingModel
и для моего DataGrid
Я использую GridItems
каждый элемент этого ObservableCollection
фактически это одна строка в моем DataGrid
.
Теперь у меня в ряду такой DataGridTemplateColumn
...
<DataGridTemplateColumn Header="Geometry calibration folder">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox x:Name="Cb_geometry_calibration"
SelectionChanged="Cb_geometry_calibration_SelectionChanged"
ItemsSource="{Binding Path=GeoCalibrationFolders}"
SelectedItem="{Binding Path=SelectedGeoCalibrationFolder}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=UIRepresentation}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
...
Есть скриншот

Теперь мне нужно знать значение, когда пользователь изменил его в ComboBox
, что я могу сделать, чтобы получить его? Я установил SelectionChanged
method
private void Cb_geometry_calibration_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (((sender as ComboBox).SelectedItem) is MCGeoCalibFolder itemm)
{
Console.WriteLine($"Item clicked: {itemm.ToString()}");
}
}
И все хорошо, я могу получить значение, которое было изменено, но проблема в том, что я не знаю, с каким ClipProcessingGridItem
из ObservableCollection
это значение связано .. .
Вопрос - Как узнать, с каким элементом связано измененное значение?