別のオプションはButton
があるべきStyle
かを決定するためにConverter
を使用することです。
コンバータ:
public class ButtonStyleConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, string language)
{
var mode = (int)value;
return mode == 1 ? Application.Current.Resources["ButtonStyle1"] as Style : Application.Current.Resources["ButtonStyle2"] as Style;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
//Do nothing
}
}
使用法:
<Button Content="Hello" Style="{Binding Button1Mode, Converter={StaticResource ButtonStyleConverter}}"/>
<Button Content="World" Style="{Binding Button2Mode, Converter={StaticResource ButtonStyleConverter}}" />
私は理論的には、ボタンが実行時にある「モード」を変更することができるようになる私のViewModelに、上のプロパティにBinding
を使用データによって異なります。これについてさらにコードが必要な場合は、Githubに例を掲載して嬉しいです。
私はそれが簡単だと思います。 – lindexi
テンプレートとスタイルの両方を使用する –