WPF datatrigger привязка к методу
У меня есть метод, который возвращает 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", то выполните настройку...
Мой Код:
public MainWindow()
{
DataContext = this;
InitializeComponent();
}
public string check
{
get
{
return "true";
}
}
Как я могу заставить это работать ? Теперь я получаю ошибку (во время выполнения, а не сбой моей программы): BindingExpression путь ошибка: 'проверить' имущество не нашел на 'объект' "отображает'
1 ответ:
DataContext RowStyle является элементом в ItemsSource DataGrid. В вашем случае это XMLElement. Чтобы привязать к DataContext элемента управления DataGrid, вы должны обратиться к DataGrid по Имяэлемента, и путь это свойство 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>