0

私はこのコードを持っています:

<ribbon:Button Label="Hello" />

ツールチップを次のようにラベルにバインドしたかったのです。

<ribbon:Button Label="Hello" ToolTip="Hello" />

私はすでに次の情報でスタイルを作成しようとしましたが、失敗しました:

<Style TargetType="{x:Type ribbon:Button}">
            <Setter Property="ToolTip" Value="{Binding Text}" />
</Style>

これを修正する方法を教えてください。Ribbon:Buttonの代わりに、通常のボタンコードを使用し、そのツールチッププロパティをそのContentプロパティにバインドしたいと思います。

編集:試した後、もう1つ、バインディングなしでSetterの内部スタイルのValueプロパティを設定すると、正常に機能します。例えば:

<Style TargetType="{x:Type ribbon:Button}">
            <Setter Property="ToolTip" Value="This will show" />
</Style>

ただし、ここではバインディングは適用されません。したがって、問題はバインディングが行われた場合にのみ発生します:(

4

2 に答える 2

0

バインディングの黄金律は次のとおりです。デバッグ出力でバインディングエラーを探します。

次に、Textをバインドします。ここでは、他のすべての場所でプロパティラベルを使用します。

第三に、バインディングの基礎はDataContextであることを理解してください。Xaml要素に名前を付けてから、ElementNameに基づくBinding構文を使用してFrameworkElementプロパティにバインドできます。

于 2012-09-29T17:15:37.527 に答える
0

もちろん、あなたのスタイルは機能しません。なぜなら、あなたは常にDataContextのプロパティにバインドしているからです。これは、コントロール自体ではないと思います。

<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Text}"/>

正常に動作するはずです。

于 2012-09-29T17:31:16.147 に答える