如何在屬性不爲空時觸發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