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 4

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>