2011-09-14 5 views

答えて

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

あなたはスタイルとDataTriggerを使ってそれを行うことができます。問題の要素にスタイルを適用し、2つのデータトリガ値を提供します.1つは可視性をtrueに、1つをfalseに設定します。 DataTrigger where value is NOT null?

0

と同様にあなたは

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または他の任意

にそれを使用するコンバータBoolToCollapsedコンバータForExampleを書くことができます
<DockPannel Visibility={Binding DockVisible, 
     Converter={StaticResource BoolToCollapsed}/> 
関連する問題