我正在处理一个VB.net&WPF项目,该项目包含一个带组合框的数据表。当不编辑带有组合框的单元格时,所选的组合框值将显示在文本块中。
在我自己的PC(Windows 10)上,一切正常。但是,一旦我将程序转移到客户端的PC(Windows 7),组合框就会开始表现不正确。当我更改组合框之一的值时,其他字段也会更改。最奇怪的是,有时同一列中的所有其他字段都会更改,而其他时候只有少数更改。但是最后,只有更改的组合框字段应该更改。
我录制了2个小片段(请参见下面的URL),在其中您可以看到它应该如何工作(顶部)以及在Windows 7上如何工作(底部)。
https://imgur.com/gallery/F5MKnZv
这是文本/组合框的XAML代码:
<DataGridTemplateColumn Header="Reason for Write Off" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=reason, UpdateSourceTrigger=PropertyChanged}"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox Name="ComboBox1" ItemsSource="{StaticResource ComboBoxReasonItems}" SelectedItem="{Binding Path=reason, UpdateSourceTrigger=PropertyChanged}" IsSynchronizedWithCurrentItem="True" ></ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
答案 0 :(得分:0)
如果属性IsSynchronizedWithCurrentItem
设置为true,则它将ComboBox中的选定Item与ItemsSource同步。由于所有“行”都绑定到相同的静态列表,并且它们都同步,所以这种行为是可以预期的。