我希望该按钮在State.Away
和State.Stop
中可见,但由于某种原因,即使State
与State.Away
和{{不同,按钮也始终可见1}}。
的Xaml:
State.Stop
视图模型:
<Button Text="Hello" IsVisible="{Binding View}"/>
答案 0 :(得分:2)
您可以从IValueConverter
到State
Visibility
public class StateToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (value is State)
{
State state = (State)value;
switch (state)
{
case State.Away:
case State.Gone:
return Visibility.Visible;
default:
return Visibility.Collapsed;
}
}
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return State.None; // your default state
}
}
然后将按钮绑定到转换器
<Window.Resources>
<local:StateToVisibilityConverter x:Key="StateToVisibilityConverter"/>
</Window.Resources>
<Button Text="Hello" Visibility="{Binding Path=State, Converter={StaticResource StateToVisibilityConverter}}"/>