DataGrid刷新界面

youqingyike 2015-05-15 10:46:49
WPF 画界面,用DataGrid控件,

DataGrid 一列代码如下:
<DataGridTemplateColumn>
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<Border> <!--作用 使标题居中-->
<Label Content="工号" />
</Border>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>

<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border>
<TextBox Text="{Binding Position0}" Background="{Binding StateColor0}" SelectionChanged="TextBox_SelectionChanged" />
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

DataGrid 控件绑定数据
this.dataGrid1.ItemsSource = m_listData;
m_listData 中改变 StateColor0 值
TextBox 绑定数据 StateColor0 的值,即TextBox 的背景色随StateColor0 改变

StateColor0 属性定义如下:
SolidColorBrush stateColor0;
public SolidColorBrush StateColor0
{
get { return stateColor0; }
set
{
stateColor0 = value;
if (this.PropertyChanged != null) //激发事件,参数为StateColor0属性
{
this.PropertyChanged.BeginInvoke(this, new PropertyChangedEventArgs("StateColor0"),null,null);
}
}
}

问题: StateColor0 值改变后,必须调用dataGrid1.Items.Refresh(); 界面才能显示StateColor0 改变后的结果;
StateColor0 值变化很快,大概每秒改变一次,如果一秒刷新一次DataGrid,
即每秒调用一次dataGrid1.Items.Refresh();
CPU 占用率很高,
有没有更好刷新界面的方法 或数据绑定好,绑定好不需刷新
...全文
59 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧