特定类型的DataTrigger

Fre*_*lad 7 c# wpf xaml datagrid triggers

我有一个场景,我需要指定函数

void SomeFunction(int value)
Run Code Online (Sandbox Code Playgroud)

为此,我用了两个DataGrid.

  • 左边DataGrid是函数
  • 右侧DataGrid包含所选函数的参数

我只希望在DataGrid函数中选择有效函数时启用参数DataGrid.如果NewItemPlaceHolder (CanUserAddRows="True"DataGrid选择a 时的最后一行)或选择为空,我希望它被禁用.我尝试使用DataTrigger,但我无法使用它

<Style TargetType="DataGrid">
    <Setter Property="IsEnabled" Value="False"/>
    <Style.Triggers>
        <DataTrigger Binding="{Binding ElementName=functionDataGrid,
                                       Path=SelectedItem}"
                     Value="{x:Type systemData:DataRowView}">
            <Setter Property="IsEnabled" Value="True"/>
        </DataTrigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

是否可以检查Binding产生的值是否具体Type?否则,有没有人有任何其他解决方案?截至目前,我正在处理这个SelectedCellsChanged事件,但我不想使用代码

谢谢

Fre*_*lad 7

如果有其他人遇到同样的问题,这就是我要解决的问题.我创建了一个TypeOfConverter返回TypeBinding生成的值.

<DataTrigger Binding="{Binding ElementName=functionsDataGrid,
                               Path=SelectedItem,
                               Converter={StaticResource TypeOfConverter}}"
             Value="{x:Type data:DataRowView}">
    <Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)

TypeOfConverter

public class TypeOfConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return (value == null) ? null : value.GetType();
    }
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)