WPFプロジェクトでは、多角形を定義するユーザーコントロール(Valve.xaml)があります。ユーザーコントロールで要素のスタイルを動的に設定する方法
<Grid>
<Polygon Name="pValve" Points="0,50 0,20 50,50 50,20" Style="{StaticResource Valve_Open}"/>
</Grid>
私はそのようなウィンドウのXAML(FFG.xaml)ファイルにバルブのユーザーコントロールを表示しています:私はクラスFFG_ViewModel.csにFFG.xamlのDataContextの設定しています
<Window
<!-- removed other namespaces for brevity -->
xmlns:cl="clr-namespace:FFG.Controls;assembly=PID.Controls">
<Grid>
<cl:Valve x:Name="valve201A"></cl:Valve>
</Grid>
</Window>
、 Valve_Modelクラスのインスタンスが含まれています。 Valve_Modelは基本的にFFG.xamlのウィンドウに描画されるバルブを表します。
public class FFG_ViewModel : ViewModelBase {
public Valve_Model Valve201A { get; set; }
// There are other properties and methods, but I've removed them for brevity also
}
はここValve_Modelクラスです:
public class Valve_Model INotifyPropertyChanged {
public event PropertyChangedEventHandler PropertyChanged;
private bool _isValveOpen { get; set; }
public bool IsValveOpen {
get {
return _isValveOpen;
}
set {
_isValveOpen = value;
OnPropertyChanged("IsValveOpen");
}
}
#region INotifyPropertyChanged
protected virtual void OnPropertyChanged(string propertyName) {
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null) {
var e = new PropertyChangedEventArgs(propertyName);
handler(this, e);
}
}
#endregion
}
QUESTION: ときIsValveOpenプロパティの変更を変更するValve.xamlでStyleプロパティのためである私は何をしたいです。
バルブが開いているのであれば、それは次のようになります。
<Polygon Name="pValve" Points="0,50 0,20 50,50 50,20" Style="{StaticResource Valve_Open}"/>
とプロパティをfalseに変更されたとき、私はポリゴンのスタイルに変更する必要があります
<Polygon Name="pValve" Points="0,50 0,20 50,50 50,20" Style="{StaticResource Valve_Closed}"/>
これを正確に実装するにはどうすればよいですか?
これはそれでした。助けてくれてありがとう! – Jagd