【发布时间】:2014-05-13 12:21:45
【问题描述】:
下面的示例运行良好,当 Id.Updated 属性为 true 时,它会突出显示 Id 列中的单元格。
我想知道如何修改绑定表达式Binding="{Binding Id.Updated}",以便绑定到正确列中当前IssueElement 对象的Updated 属性(不仅仅是Id 之一)。
我希望所有列只使用一种样式,而不是每列一种样式。
以下示例是 DataGrid 在我的应用程序中工作方式的简化版本。
数据网格:
<DataGrid ItemsSource="{Binding IssueList}" AutoGenerateColumns="False" >
<DataGrid.Resources>
<Style x:Key="TestStyle" TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<DataTrigger Binding="{Binding Id.Updated}" Value="True">
<Setter Property="Background" Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding Id.Value}" CellStyle="{StaticResource TestStyle}" />
<DataGridTextColumn Header="Title" Binding="{Binding Title.Value}" CellStyle="{StaticResource TestStyle}" />
<DataGridTextColumn Header="Body" Binding="{Binding Body.Value}" CellStyle="{StaticResource TestStyle}" />
</DataGrid.Columns>
</DataGrid>
收藏:
private ObservableCollection<Issue> mIssueList;
public ObservableCollection<Issue> IssueList
{
get { return mIssueList; }
set { mIssueList = value; OnPropertyChanged("IssueList"); }
}
集合使用的类
public class Issue
{
public IssueElement Id { get; set; }
public IssueElement Title { get; set; }
public IssueElement Body { get; set; }
}
public class IssueElement
{
public string Value { get; set; }
public bool Updated { get; set; }
}
提前致谢
【问题讨论】:
标签: c# wpf data-binding wpfdatagrid