WPF组合框更改数据表中的错误字段

时间:2018-11-20 10:39:49

标签: wpf vb.net combobox

我正在处理一个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>

1 个答案:

答案 0 :(得分:0)

如果属性IsSynchronizedWithCurrentItem设置为true,则它将ComboBox中的选定Item与ItemsSource同步。由于所有“行”都绑定到相同的静态列表,并且它们都同步,所以这种行为是可以预期的。

请参见Microsoft Docs