DataGrid刷新界面
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 占用率很高,
有没有更好刷新界面的方法 或数据绑定好,绑定好不需刷新