如何刷新datagrid列中的所有值?

时间:2015-09-29 14:07:01

标签: c# wpf mvvm datagrid

我在绑定中有一个数据网格,由一列和一个按钮组成。

单击此按钮“全选”时,列中的所有值都已更改。

有什么问题?我会立即看到没有datagrid滚动的结果。

如何立即刷新列?

<DataGrid AutoGenerateColumns="False" 
    ItemsSource="{Binding Ele_Soc, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
    SelectedItem="{Binding Selec_Elenc, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
    SelectionMode="Single"  Name="Dg_Dat" >

    <DataGrid.Columns>                
          <DataGridTextColumn x:Name="col_Soc_cod" Binding="{Binding Soc_cod}" 
                             IsReadOnly="True" Header="Soc. Cod"  Width="80" />
    </DataGrid.Columns>
</DataGrid>
public ObservableCollection<Model_Soc> Ele_Soc { get; set; }
private void Cmd_SelectAll()
{
    for (Int32 i = 0; i <= Ele_Soc.Count - 1; i++) {
        Ele_Soc.Item(i).Soc_cod = "Yes";
        OnPropertyChanged("Ele_Soc");
    }
}

1 个答案:

答案 0 :(得分:0)

<强>解决即可。

在“For”循环后,我添加了此代码

for (Int32 i = 0; i <= Ele_Soc.Count - 1; i++) 
{
    Ele_Soc.Item(i).Soc_cod = "Yes";
    OnPropertyChanged("Ele_Soc");
}

ObservableCollection<Model_Soc> Tmp = Ele_Soc;
Ele_Soc = null;

OnPropertyChanged("Ele_Soc");
Ele_Soc= Tmp;
OnPropertyChanged("Ele_Soc");