【问题标题】:How refresh all values in a datagrid column?如何刷新数据网格列中的所有值?
【发布时间】:2015-09-29 14:07:00
【问题描述】:

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

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

有什么问题?我会立即看到结果,无需数据网格滚动。

如何立即刷新该列?

<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");
    }
}

【问题讨论】:

  • 谢谢,但不起作用! :-(
  • OnPropertyChanged("Soc_cod"); 怎么样?您更改了 Soc_cod 属性值,因此请尝试提高其更改事件。
  • 我尝试了 OnPropertyChanged("Soc_cod") 和 OnPropertyChanged("Ele_Soc") 但不起作用
  • 你的 Soc_cod 属性是否在 setter 上有 OnPropertyChanged 调用?
  • 是私有字符串_Soc_cod { get;放; } 公共字符串 Soc_cod { 获取 { 返回 _Soc_cod; } 设置 { _Soc_cod = 值; OnPropertyChanged("Soc_cod"); } }

标签: c# wpf mvvm datagrid


【解决方案1】:

已解决

在“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");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-26
    • 2013-02-23
    • 2016-12-28
    • 2012-07-04
    • 2012-04-19
    • 1970-01-01
    • 2011-09-24
    • 2017-02-24
    相关资源
    最近更新 更多