他の要素の中に ProgressBar を含む customcontrol があります。
<ProgressBar Value="{TemplateBinding CurrentProgress}"
MinValue="{TemplateBinding MinValue}"
MaxValue="{TemplateBinding MaxValue}"/>
<Label Content="{TemplateBinding CurrentProgress}"/>
私の .cs ファイルでは、これらすべてのプロパティを次のように定義しました。
#region MaxProgress
public int MaxProgress
{
get { return (int)GetValue(MaxProgressProperty); }
set { SetValue(MaxProgressProperty, value); }
}
public static readonly DependencyProperty MaxProgressProperty =
DependencyProperty.Register("MaxProgress", typeof(int), typeof(GameFlowControl), new FrameworkPropertyMetadata(1000, FrameworkPropertyMetadataOptions.AffectsRender));
#endregion
#region CurrentProgress
public int CurrentProgress
{
get { return (int)GetValue(CurrentProgressProperty); }
set { SetValue(CurrentProgressProperty, value); }
}
public static readonly DependencyProperty CurrentProgressProperty =
DependencyProperty.Register("CurrentProgress", typeof(int), typeof(GameFlowControl), new FrameworkPropertyMetadata(50, FrameworkPropertyMetadataOptions.AffectsRender));
#endregion
#region MinProgress
public int MinProgress
{
get { return (int)GetValue(MinProgressProperty); }
set { SetValue(MinProgressProperty, value); }
}
public static readonly DependencyProperty MinProgressProperty =
DependencyProperty.Register("MinProgress", typeof(int), typeof(GameFlowControl), new FrameworkPropertyMetadata(0, FrameworkPropertyMetadataOptions.AffectsRender));
#endregion
上記のようにこれらの値をラベルにバインドするとうまくいきますが、どうやらこれらのバインドは私の ProgressBar では機能しません。私がこれまでに試したこと:
- Value、MinValue、および MaxValue の順序の変更。
- TemplateBinding ( CurrentProgress XYZなど) にタイプミスを追加すると、コンパイル エラーが発生します (プロパティが認識されるようになります)。
- プロパティにデフォルト値を追加しました (0、50、1000 を参照)。
- バインディングと設定の値を直接削除しました: Value = 50、MinValue = 0、MaxValue=100 は、ProgressBar が半分塗りつぶされて表示されることを示します。
- これらのプロパティのゲッターにブレークポイントを追加しましたが、それらはトリガーされませんでした(これは私を大いに混乱させます!)
これを引き起こす可能性のあるヒントはありますか?