まず第一に、私は WPF にかなり慣れていないので、ばかげた間違いをお許しください。
私は3つのクラスを持つ簡単なソリューションを持っています:
public class MyCustomItem
public class MyCustomLayout : ThirdPartyLayout<MyCustomItem>
public class MyViewController : INotifyPropertyChanged
MyCustomItem は、いくつかのプロパティを持つ単純なクラスです (「名前」はその 1 つです)。ThirdPartyLayoutTool は、System.Windows.Controls.Panel から継承する SDK 内の汎用コンポーネントです。MyViewController は、データ コンテンツとして使用しているビュー コントローラーです。
次に、この単純な XAML をプロジェクトのメイン ウィンドウとして作成しました。
<Window x:Class="DependencyViewer.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sdk="clr-namespace:Sdk;assembly=Sdk"
xmlns:local="clr-namespace:MyNamespace"
Title="MainWindow" Height="350" Width="525">
<local:MyCustomLayout x:Name="myLayout"/>
</Window>
すべてがそれに応じて表示されます。ここでの目的は、ThirdPartyLayout パネルによって表示されるサブ コンポーネントの 1 つ、TargetControl と呼ばれる表示を強化することです。そこで、次のコードを追加します。
<Window.Resources>
<Style TargetType="{x:Type sdk:TargetControl}">
<Style.Resources>
<ToolTip x:Key="ToolTipContent">
<StackPanel>
<TextBlock FontWeight="Bold" Text="Testing 1 2 3"/>
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</ToolTip>
</Style.Resources>
<Setter Property="ToolTip" Value="{StaticResource ToolTipContent}"/>
</Style>
</Window.Resources>
コードを実行すると、"Testing 1 2 3" メッセージは正しく表示されますが、Name プロパティが表示されません。出力ウィンドウに次のメッセージが表示されます。
BindingExpression path error: 'Name' property not found on 'object' ''MyViewController' (HashCode=31884011)'
私が得られないのは、TargetControl クラスではなく、MyViewController クラスでバインディングが行われている理由です。何か案は?
よろしく、 カルロス・ジョルダン
編集:
主にnewbの推奨事項に従ってガイドをいじった後、最終的にエラーの原因が実際にはSDKにあることがわかりました。現在のリリースにはまだ問題がありますが、ソースからコンパイルすると、期待どおりの動作が得られます。
助けてくれてありがとう。