好的,这是我的情况:
我有一个DataGridView
含有Message
s,应用以下样式。
<Style x:Key="ChangeSetRowStyle" TargetType="{x:Type DataGridRow}">
<Setter Property="FontWeight" Value="Normal" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsRead}" Value="False">
<Setter Property="FontWeight" Value="Bold" />
</DataTrigger>
<DataTrigger Binding="{Binding IsRead}" Value="True">
<Setter Property="FontWeight" Value="Normal" />
</DataTrigger>
</Style.Triggers>
</Style>
我的目的是使未读消息加粗,而已读消息保持正常字体粗细。即使在加载集合时正确应用了样式,但当项目的IsRead
属性被改变。风格好像没有更新。
有人可以解释一下吗?谢谢!
Your Message
类需要继承自INotifyPropertyChanged
和IsRead
财产需要提高PropertyChanged
修改时的事件。这是一个例子:
public class Message: INotifyPropertyChanged
{
private bool _isRead;
public bool IsRead
{
get { return _isRead; }
set
{
_isRead = value;
RaisePropertyChanged("IsRead");
}
}
#region INotifyPropertyChanged Members
/// <summary>
/// Raised when a property on this object has a new value.
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
#endregion
/// <summary>
/// Raises this object's PropertyChanged event.
/// </summary>
/// <param name="propertyName">The property that has a new value.</param>
public virtual void RaisePropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(this, e);
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)