У меня есть DataGrid, и я хочу заполнить столбец, содержащий ComboBox, динамическим ItemsSource элементов на основе строки.У меня правильно отображается поле со списком, и правильный список элементов заполняется в списке, как извлечено из свойства AvailableLogFileProcessTypes
, которое является ReadOnlyCollection.Однако, когда выбор выполняется пользователем в выпадающем списке, свойство LogFileProcessType
не устанавливается на выбор.
Данные:
Property LogFileDirectories, IEnumerable<LogFileData>,
LogFileData:
public LogFileProcessType LogFileProcessType{get;set;}
public ReadOnlyCollection<LogFileProcessType> AvailableLogFileProcessTypes { get; set; }
У свойства в настоящее время есть поле поддержки, и точка останова в свойстве set не получает удар, поэтому я знаю, что он локализован внастройка привязки.Что не так с моим XAML, который препятствует установке свойства?
Как вы можете видеть, я попытался установить SelectedValue и SelectedItem в CellEditingTemplate и CellTemplate.Я не уверен, какой из них подходит.
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Path=LogFileDirectories, UpdateSourceTrigger=PropertyChanged}"
HeadersVisibility="Column" CanUserReorderColumns="False" CanUserAddRows="False" Margin="0,0,0,35" Grid.RowSpan="3">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Processed" Binding="{Binding Path=IsProcessingComplete, Mode=OneWay}" Width="70" IsReadOnly="True" />
<DataGridTemplateColumn Header="template">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox SelectedValue="{Binding Path=LogFileProcessType, Mode=TwoWay}"
SelectedItem="{Binding Path=LogFileProcessType, Mode=TwoWay}"
ItemsSource="{Binding Path=AvailableLogFileProcessTypes}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox SelectedValue="{Binding Path=LogFileProcessType, Mode=TwoWay}"
SelectedItem="{Binding Path=LogFileProcessType, Mode=TwoWay}"
ItemsSource="{Binding Path=AvailableLogFileProcessTypes}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>