2011-09-14 22 views
0

不是邏輯是有可能做一些類似的,但不引入新的變量像在綁定conveter

布爾showsearch = ShowUser!;

能見度= 「{結合!ShowUser,轉換器= {StaticResource的BoolToVis}}」

回答

0

我不認爲這是可能的,你必須創建一個倒置的能見度轉換器這樣,

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; 
    } 
} 
0

類似,你可以寫一個轉換器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}/>