WPF DataGridTemplateColumn组合框更新所有行

本文关键字:更新 DataGridTemplateColumn 组合 WPF | 更新日期: 2023-09-27 18:00:00

我有一个XAML,它从组合框中选择ItemSource是枚举的值。我使用的教程是:

http://www.c-sharpcorner.com/uploadfile/dpatra/combobox-in-datagrid-in-wpf/

            <DataGrid x:Name="dgProductItem" 
                   ItemsSource="{Binding ProductVersion.ProductItems}"
            <DataGridTemplateColumn Header="Deployment Type" Width="120">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding DeploymentType}"></TextBlock>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <ComboBox ItemsSource="{Binding Source={StaticResource DeploymentTypeEnum}}"
                                  SelectedItem="{Binding DeploymentType}">
                        </ComboBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>

但是,当我更改一行中的值时,将更新所有行。有人知道为什么会这样吗?

编辑:

如果我只更改一行,它只会更新那一行,但当我更改另一行时,我刚刚更改的那一行也会更改前一行。。

干杯

WPF DataGridTemplateColumn组合框更新所有行

对重复的内容表示歉意,但经过几个小时的猜测,因为网上没有足够的材料来做这类事情,解决方案是:

</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
    <DataTemplate>
        <ComboBox ItemsSource="{Binding Source={StaticResource DeploymentTypeEnum}}"
                  SelectedItem="{Binding DeploymentType}"
                  **IsSynchronizedWithCurrentItem="false**">
        </ComboBox>
    </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>

IsSynchronizedWithCurrentItem-按照罐头上写的做。但是,当您选择一个项目时,当前项目将消失,但至少不会更新所有行。