Вы можете реализовать IValueConverter
и применить его к привязке между Button.Style
и DataContext.Status
:
public class StatusToStyleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is Status status)
{
if (status == "open")
{
return (Style) Application.Current.FindResource("BtnStyleOpen");
}
if (status == "close")
{
return (Style) Application.Current.FindResource("BtnStyleClose");
}
}
return Binding.DoNothing;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
. Вы должны добавить экземпляр IValueConverter?
в некоторый ресурс:
<Button.Resource>
<StatusToStyleConverter x:Key"StatusToStyleConverter" />
<Button.Resource>
Затем примените Style
:
<Button Style="{Binding Status, Converter={StaticResource StatusToStyleConverter}} />
Поскольку вы не поделились подробностями своего типа Status
, вам, вероятно, придется изменить оценку условия вконвертер.