不是邏輯是有可能做一些類似的,但不引入新的變量像在綁定conveter
布爾showsearch = ShowUser!;
能見度= 「{結合!ShowUser,轉換器= {StaticResource的BoolToVis}}」
不是邏輯是有可能做一些類似的,但不引入新的變量像在綁定conveter
布爾showsearch = ShowUser!;
能見度= 「{結合!ShowUser,轉換器= {StaticResource的BoolToVis}}」
我不認爲這是可能的,你必須創建一個倒置的能見度轉換器這樣,
public class InvertedBooleanToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool flag = false;
if (value is bool)
{
flag = (bool) value;
}
else if (value is bool?)
{
bool? nullable = (bool?) value;
flag = nullable.Value;
}
return flag ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value is Visibility && (Visibility) value == Visibility.Collapsed;
}
}
你可以使用一種風格和DataTrigger。將樣式應用於有問題的元素,並提供2個數據觸發值 - 一個將可見性設置爲true,一個設置爲false。到DataTrigger where value is NOT null?
類似,你可以寫一個轉換器BoolToCollapsed轉換ForExample
public class BoolToVisibleConverter : ConverterMarkupExtension<BoolToVisibleConverter>,
IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
bool obj=(bool) value;
if(!obj)
return Visibility.Collapsed;
else
return Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter,
CultureInfo culture)
{
Visibility obj=(Visibility) value;
if(obj==Visibility.Visible)
return true;
else
return false;
}
}
添加靜態資源Window.Resources
<Window.Resources>
<converter:BoolToVisibleConverter x:Key="BoolToCollapsed"/>
</Window.Resources>
然後用它來一個電網,DockPanel中或者任何其它
<DockPannel Visibility={Binding DockVisible,
Converter={StaticResource BoolToCollapsed}/>