如果对象是特定类,则检入数据触发器

时间:2013-03-14 11:22:12

标签: c# wpf datatrigger

有没有办法检查DataTrigger对象是否属于特定类?

事实上我希望DataTriggerC#中回答这个问题:

if(MyObject is MyClass)

我希望它在XAML中看起来像这样:

<Grid>
   <Grid.Triggers>
     <DataTrigger Binding="{Binding MyObject}" Value="MyClass?">
        <Setter..../>
     </DataTrigger>
   </Grid.Triggers>
</Grid>

1 个答案:

答案 0 :(得分:1)

您可以使用转换器:

<Grid>
    <Grid.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding MyString, Converter={StaticResource OConv}, ConverterParameter=System.String}" Value="True">
                    <Setter Property="Grid.Background" Value="Red"></Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Grid.Style>
</Grid>

使用ConverterParameter声明您希望接收的对象的类型... 如果匹配,转换器将返回true,否则返回false ...

转换器示例:

public clas s ObjectTypeToBooleanConverter : IValueConverter
{
  public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value.GetType().ToString() == (string)parameter)
        {
            return true;
        }
        return false;
    }