我有一个返回true或false的方法。
我希望将此方法绑定到我的DataTrigger
<DataGrid ItemsSource="{Binding Source={StaticResource SmsData}, XPath=conv/sms}">
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=check}" Value="true">
<Setter Property="Foreground" Value="Black" />
<Setter Property="Background" Value="Blue" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
如果返回值为“true”,则执行setter ...
我的代码:
public MainWindow()
{
DataContext = this;
InitializeComponent();
}
public string check
{
get
{
return "true";
}
}
我怎样才能使这个工作?我现在收到一个错误(在运行时,没有崩溃我的程序): BindingExpression路径错误:'object'''XmlElement'
上找不到'check'属性答案 0 :(得分:3)
RowStyle的DataContext是DataGrid的ItemsSource中的一个项目。在您的情况下,这是一个XMLElement。要绑定到DataGrid的DataContext,您必须通过ElementName引用DataGrid,而Path是元素的DataContext。像这样:
<DataGrid Name="grid" ItemsSource="{Binding ...
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=grid, Path=DataContext.check}" Value="true">
<Setter Property="Foreground" Value="Black" />
<Setter Property="Background" Value="Blue" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>