ユーザー コントロールを作成しました。バインドするプロパティのコードは次のとおりです。
public Color Value
{
get
{
return (Color)this.GetValue(this.ValueProperty);
}
set
{
this.SetValue(this.ValueProperty, value);
}
}
public readonly DependencyProperty ValueProperty =
DependencyProperty.Register("Value", typeof(Color),
typeof(ColorSlider), new PropertyMetadata(Colors.Red))
私のページには、このコントロールの 2 つのインスタンスがあります。
<local:ColorSlider x:Name="ColorsSlider1" />
<!--...-->
<local:ColorSlider x:Name="ColorsSlider3" />
そして、バインドしたい値を持つコントロール (からColorSlider
とCanvas
) TextBlock
:
<Canvas x:Name="TileCanvas" Grid.Column="0" Margin="30" Width="173" Height="173"
Background="{Binding Value, ElementName=ColorsSlider1, Converter={StaticResource ColorToSolidBrushConverter}}">
<TextBlock x:Name="TileText" Text="dsdfsdfsf"
Foreground="{Binding Value, ElementName=ColorsSlider3, Converter={StaticResource ColorToSolidBrushConverter}}"/>
</Canvas>
ここで問題です。Canvas
作品にバインドしますが、そうでTextBlock
はありません! ColorSlider3
へのバインディングを削除すると、機能するのは興味深いことですTextBlock
。TextBlock
また、バインディングをに設定すると、バインディングは背景を更新しColorSlider3
ます。
したがって、 one の最新のインスタンスからのみ値をバインドできるようですUserControl
。これはなぜですか?どうすれば修正できますか?