如何在属性不为空时触发WPF中的操作? 这是一个可行的解决方案时为空:WPF触发器不为空
<Style.Triggers>
<DataTrigger Binding="{Binding}" Value="{x:Null}">
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
</Style.Triggers>
我知道你不能“转身”的条件,你需要什么,而是想知道
如何在属性不为空时触发WPF中的操作? 这是一个可行的解决方案时为空:WPF触发器不为空
<Style.Triggers>
<DataTrigger Binding="{Binding}" Value="{x:Null}">
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
</Style.Triggers>
我知道你不能“转身”的条件,你需要什么,而是想知道
不幸的是,你不能。但实际上这是没有必要:你只需要指定背景当值不在风格制定者空,在不触发:
<Style.Setters>
<!-- Background when value is not null -->
<Setter Property="Background" Value="Blue" />
</Style.Setters>
<Style.Triggers>
<DataTrigger Binding="{Binding}" Value="{x:Null}">
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
</Style.Triggers>
“绑定” 不是属性... – 2009-08-06 09:41:40
可以在Microsoft.Expression.Interactions使用DataTrigger
类。 dll附带表达混合。
代码示例:
<i:Interaction.Triggers>
<ie:DataTrigger Binding="{Binding YourProperty}" Value="{x:Null}" Comparison="NotEqual">
<ie:ChangePropertyAction PropertyName="YourTargetPropertyName" Value="{Binding YourValue}"/>
</ie:DataTrigger>
</i:Interaction.Triggers>
使用这种方法,你可以触发对GreaterThan
和LessThan
了。 为了使用此代码,您应该引用这两个dll的:
System.Windows.Interactivity.dll
Microsoft.Expression.Interactions.dll
并添加相应的命名空间:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ie="http://schemas.microsoft.com/expression/2010/interactions"
这是一个老问题,但我想回答。其实你可以。只需要在绑定中使用Converter。转换器必须返回null或不。所以你会检查语句是真是假。它规定如果返回值为false,可以检查两个条件,这意味着它不为空。如果是真的,则表示它为空。
<converters:IsNullConverter x:Key="IsNullConverterInstance"/>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=DataContext, Converter={StaticResource IsNullConverterInstance}" Value="True">
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
</Style.Triggers></Style>
public class IsNulConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value == null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return Binding.DoNothing;
}
}
这是一个重复:http://stackoverflow.com/questions/356194/wpf-datatrigger-where-value-is-not-null – 2009-08-06 11:17:11