風格觸發如果((A & &(B || || C^d))||(E & &(F || ||克H)))在WPF
然後設置按鈕IsEnabled屬性真
我想在WPF中使用樣式觸發器中的按鈕實現此功能。
在此先感謝。
風格觸發如果((A & &(B || || C^d))||(E & &(F || ||克H)))在WPF
然後設置按鈕IsEnabled屬性真
我想在WPF中使用樣式觸發器中的按鈕實現此功能。
在此先感謝。
最簡單的方法將是約束所有使用Mutlivalueconverter這些以IsEnable財產的風格,並把這個邏輯轉換器的轉換方法:
<Style TargetType={x:Type Button}>
<Setter Property="IsEnabled">
<Setter.Value>
<MultiBinding Converter="{StaticResource MyConverter}">
<Binding Path="a"/>
<Binding Path="b"/>
<Binding Path="c"/>
<Binding Path="d"/>
<Binding Path="e"/>
<Binding Path="f"/>
<Binding Path="g"/>
<Binding Path="h"/>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
這裏MyConverter是Multivalueconverter。
感謝
沒有||在MultiDataTrigger中。您必須改用多個觸發器。採取你的表達式並提取所有不含||的子表達式當按鈕應啓用:
現在他們每個人在你的風格,按鈕的Enabled屬性設置爲true建立MultiDataTrigger。而已。
正如其他人所提到的,WPF中沒有對任意布爾表達式的內置支持。
如果你願意加入第三方軟件,但是,PyBinding允許你使用Python表達式在WPF綁定:
<Button IsEnabled="{p:PyBinding $[.a] and ($[.b] or $[.c] or $[.d]) ... }"/>
有多種方式來處理這種事情,因爲所有的慷慨答案說,但是我可以給你的最好的建議是,這是你想要保留在窗體外的確切類型的邏輯,並在你的ViewModel(MVVM方法)中處理。那麼你的綁定將非常簡單。 – Liz