clr-object へのデータ バインディングのコード例に従ってみようとしています。
例は次のように述べています
<DockPanel
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:SDKSample">
<DockPanel.Resources>
<c:MyData x:Key="myDataSource"/>
</DockPanel.Resources>
<DockPanel.DataContext>
<Binding Source="{StaticResource myDataSource}"/>
</DockPanel.DataContext>
<Button Background="{Binding Path=ColorName}"
Width="150" Height="30">I am bound to be RED!</Button>
</DockPanel>
ただし、XAML で (C# で) 作成したオブジェクトの参照を取得する際に問題があるようです
<Page
x:Class="HelloWindows.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:HelloWindows"
xmlns:src="clr-namespace:HelloWindows"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Page.Resources>
<src:MainPage+Person x:key="person" />
</Page.Resources>
ここに私のC#があります
public Person person = new Person();
public class Person
{
public String name { get; set; }
}
示されているように、「src」名前空間を作成しました。しかし、Visual Studio は "Person" を認識せず、その前に "MainPage+Person" を追加したいと考えています。次のエラーが表示されます
IDictionary に追加されたすべてのオブジェクトには、Key 属性またはその他のタイプのキーが関連付けられている必要があります。
したがって、これと「MainPage + Person」についても混乱しています。XAML にオブジェクトの型だけでなく、作成している実際のオブジェクトのハンドルも取得する方法が必要だと思います。