私はこのコンバータ作成:
public class BooleanToVisibilityConverter : IValueConverter
{
public BooleanToVisibilityConverter()
{
}
public object Convert(object value, Type targetType, object parameter, string language)
{
if (value is bool && (bool) value)
{
return Visibility.Visible;
}
return Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return (value is Visibility && (Visibility)value == Visibility.Visible);
}
}
をそして、私の見解では、これをインポート:
<Page.Resources>
<vm:BooleanToVisibilityConverter x:Key="BoolToVis" />
</Page.Resources>
を私はSymbolIconへの結合を追加しましたより:
<SymbolIcon Grid.Column="0" x:Name="CompleteTask" Symbol="Accept" Foreground="Green" Visibility="{Binding Path=Check, Converter=StaticResource BoolToVis}}"/>
出典:https://pmdevweb.wordpress.com/2016/05/24/uwp-binding-boolean-to-visibility/
OPは 'x:Bind'を使用しています。代わりに 'Binding'を使用する理由は何ですか? – IInspectable
実際には違いはありません(この場合はありません)。それはx:Bindにchagedすることができますが、私は個人的にはBindingを優先します。なぜなら、NVVMではより適切であり、よく見えるからです。 – RTDev
大きな違いがあります。 1つは、 'x:Bind'と' Binding'を同じ意味で使うことはできません。別の方法では、デフォルトモードが異なります。コンパイル時に 'x:Bind'がチェックされ、コンパイラエラーが発生します(実行時に' Binding'は失敗します)。詳細については、[データバインドの詳細](https://msdn.microsoft.com/windows/uwp/data-binding/data-binding-in-depth)を参照してください。あなたは 'x:Bind'(*個人的な好み*は良い理由ではない)を介して'バインディング 'を選択する**非常に良い**理由を持っていなければなりません。 – IInspectable