OneWayToSource バインディングがターゲット値をリセットするのはなぜですか? バインディング コードは次のとおりです。
SolidColorBrush brush = GetTemplateChild("PART_PreviewBrush") as SolidColorBrush;
if (brush != null)
{
Binding binding = new Binding("Color");
binding.Source = brush;
binding.Mode = BindingMode.OneWayToSource;
this.SetBinding(ColorPicker.ColorProperty, binding);
}
xaml で「Color」依存プロパティを設定しました。しかし、バインディングによって上書きされます。その後、バインディングは正常に機能します。したがって、本質的に私の問題は次のとおりです。バインディングによって上書きされるため、「Color」プロパティに開始値を与えることができません。
編集:
問題を解決する回避策を作成しましたが、OneWayToSource がそのように動作する理由をまだ理解していません。
System.Windows.Media.Color CurrentColor = this.Color;
this.SetBinding(ColorPicker.ColorProperty, binding);
this.Color = CurrentColor;
編集2:
可能な解決策が見つかりました:設定する必要があります:
binding.FallbackValue = this.Color;