添付プロパティを作成しています。私の添付クラスはhelper:FocusDetail
であり、2 つのプロパティがあります。2 番目のプロパティDetailBody
タイプはオブジェクトです。このプロパティをアイテム コントロールで使用しています
<ItemsControl ItemsSource="{Binding Riches}" BorderThickness="0">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding TextInfo}"
helper:FocusDetail.DetailTitle="{StaticResource strTitle}"
helper:FocusDetail.DetailBody="{Binding Description}"
/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
それは正常に機能しています
私はこのように添付値を変更しています
<DataTemplate>
<TextBox Text="{Binding TextInfo}"
helper:FocusDetail.DetailTitle="{StaticResource strTitle}">
<helper:FocusDetail.DetailBody>
<Binding Path="Description"/>
</helper:FocusDetail.DetailBody>
</TextBox>
</DataTemplate>
それは私がまた変えている仕事です
<DataTemplate>
<TextBox Text="{Binding TextInfo}"
helper:FocusDetail.DetailTitle="{StaticResource strTitle}"
>
<helper:FocusDetail.DetailBody>
<TextBlock Text="Some static text"></TextBlock>
</helper:FocusDetail.DetailBody>
</TextBox>
それは働いています。私の最後の変更はここにあります
<DataTemplate>
<TextBox Text="{Binding TextInfo}"
helper:FocusDetail.DetailTitle="{StaticResource strTitle}">
<helper:FocusDetail.DetailBody>
<TextBlock Text="{Binding Description}"></TextBlock>
</helper:FocusDetail.DetailBody>
</TextBox>
</DataTemplate>
これは仕事ではありません。テキストブロックが空です。
私は変わっています
<TextBlock Text="{Binding Description}"></TextBlock>
に
<TextBlock Text="{Binding }"></TextBlock>
.
しかし、textblock は Window DataContext タイプを返します。Itemscontrol の繰り返しから既に終了しています。
なぜバインディングが間違って動作するのですか?
最後のコードのように添付プロパティを宣言する方法は?
ビジュアル ツリー コントロールを含む添付プロパティが必要です。