DataGrid刷新界面

youqingyike youqingyike 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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 占用率很高,
有没有更好刷新界面的方法 或数据绑定好,绑定好不需刷新
...全文
评论
收藏 已收藏
分享
返回顶部
youqingyike
C# 111,128 成员 642,537 内容