如图所示,我在DataGrid中定义了一个ComboBox。ComboBox是包含和属性的自定义类的列表。是财产,是财产。绑定到DataGrid上的属性。(请注意,DataGrid的是一个视图。)ComboBox正确填充,并且ComboBox选择与属性的绑定也有效。一切都很好,适用于新数据。问题在于ItemsSource
CodePickList
Name
ID
DisplayMemberPath
Name
SelectedValuePath
ID
SelectedValue
GLCode
ItemsSource
ItemsSource
GLCode
ItemsSource
数据网格。ComboBox 的文本块只是空白。显然,当 ComboBox ItemsSource 加载时,ComboBox无法将DataGrid上的属性与ComboBoxGLCode
上的属性相匹配。这些属性属于同一类型。WinForms 处理这种情况,但我无法让它在 WPF 中工作。 ItemsSource
ID
ItemsSource
<DataGrid ItemsSource="{Binding EntityDetailsView.View}">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{BindingPath=DataContext.CodePickList, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
DisplayMemberPath="Name" SelectedValuePath="ID" SelectedValue="{Binding GLCode, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
IsEditable="False" IsReadOnly="False"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>