私はセルの値に応じて異なる色のセルを持つデータグリッドを持っています。コントロールテンプレート:バインディングを作成する方法
さらに詳しい情報を表示するツールチップがあります。これはすべて正常に動作します。
しかし、詳しい情報を表示し、セルと同じ色になるようにツールチップを変更したいと考えています。だから、私はツールチップのカスタムスタイルを作ることが賢明だと思った。だから、私は以下のコードを持っています。
<Style TargetType="ToolTip">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToolTip">
<Border CornerRadius="15,15,15,15"
BorderThickness="3,3,3,3"
Background="#AA000000"
BorderBrush="#99FFFFFF"
RenderTransformOrigin="0.5,0.5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0"/>
<TextBlock Grid.Row="1"/>
<TextBlock Grid.Row="2"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
私のデータグリッドにバインドされている以下のオブジェクトがあります。私は私のツールチップの3つのテキストボックスに3つのプロパティをバインドしたい。私のDataGrid内
class MyTask
{
public string Name;
public int Code;
public string Description;
}
私は、これは理にかなって
DataGridTextColumn Header="Code" Binding="{Binding Code}"
の下のようなプロパティにバインドDataGridTextColumnに
ItemsSource="{Binding TaskList}"
その後、私のデータグリッドに自分のデータをバインドするには、以下のん私。私はカスタムツールチップを作成する際にバインディングをどのように使用するかを見失うことになります。私はテンプレートバインディングを使用できることを読んだ。上記のxamlのMyTask型のオブジェクトにツールチップがどのようにバインドされるのかまだ分かりません。
アップデート - うまくいけば私の質問をより明確に
私は(3つのテキストボックス用)私のコントロールテンプレートでバインディングを作成する方法を知りたい、その後、私のコードの主要な部分で、私はこれらと結合する方法テキストボックス。私は私のコントロールテンプレートの背景色のバインディングを作成する方法を知りたいと思いますが、これは親戚ソースと関係していると思いますか?
私が他の例(Templateプロパティを変更)を読んでいるとき、私は以下のような行を見ています。なぜあなたはそれをやらなければならないのか本当に分かりません。下の行を正しく読み込めなかった場合、Paddingプロパティでバインディングを作成できないでしょうか?
<Border Padding="{Binding Padding}" ...>
"コード"プロパティはどこに定義されていますか? TaskListの中にありますか?もしそうなら、Binding = "{Binding TaskList.Code}"をやってみましたか?また、グリッドコードを投稿することはできますか?それが助けになるだろう。 – jpgrassi
はいTaskListはリストです。データグリッドのバインディングが機能しています。コントロールのテンプレートを変更するときにバインディングを使用する方法がわかりません –
mHelpMe
最も簡単な方法は、カスタムコントロールを使用して依存プロパティを定義することです。http://stackoverflow.com/questions/11896619/custom-control-dependency-property-binding – Bart