アイコン付きの四角形を使用して、計算のステータスを表示します。計算のステータス (完了/失敗 = 未完了) を処理するために、datatrigger とバインド "IsCompleted" を使用してスタイルを定義しました。現在、複数の計算があり、複数の計算に同じタイプの四角形 (すべて同じスタイルと動作) を使用したいと考えています。一般に、IsCompleted のバインドを 1 つの四角形に設定する方法を知っています。
特定の四角形のコード ビハインドでトリガーのバインドを設定するにはどうすればよいですか (sth。computer1.iconStyle.IsCompleted=true のように)? これは可能ですか、それとも計算ごとに 1 つのスタイルを定義する必要がありますか (これは多くの余分なコードになります)。
xaml:
<VisualBrush x:Key="NotCompleted" Stretch="Fill" Visual="{StaticResource appbar_error}" />
<VisualBrush x:Key="Completed" Stretch="Fill" Visual="{StaticResource appbar_check}" />
<Style x:Key="iconStyle" TargetType="{x:Type Rectangle}">
<Setter Property="Width" Value="20"/>
<Setter Property="Fill" Value="Red"/>
<Setter Property="Height" Value="20"/>
<Setter Property="Margin" Value="0,0,5,0"/>
<Setter Property="OpacityMask" Value="{StaticResource NotCompleted}" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsCompleted}" Value="True">
<Setter Property="Fill" Value="Green"/>
<Setter Property="OpacityMask" Value ="{StaticResource Completed}"/>
</DataTrigger>
</Style.Triggers>
</Style>
電話:
<Rectangle Name="computation1" Style="{StaticResource iconStyle}" Grid.Column="0" VerticalAlignment="Top" />
コードビハインド:
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string property)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
private bool _isCompleted;
public bool IsCompleted
{
get { return _isCompleted; }
set { _isCompleted= value; NotifyPropertyChanged("IsCompleted"); }
}
private bool comp1(){
....
IsCompleted = !IsCompleted;
}
編集:
出力例:
グループボックス1:
| -------------------------
| 計算 1:(TextBlock)
| 完了または未完了のアイコン (長方形)
| 意味: (TextBlock)
| その他のもの:
| -------------------------
groupbox2:
| -------------------------
| 計算 2: (TextBlock)
| 完了または未完了のアイコン (長方形)
| グラフ: (イメージ)
| その他のもの:
| -------------------------