我正在尝试遵循将数据绑定到 clr 对象的代码示例。
该示例指出
<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 不仅是对象的类型,而且还要获得我正在创建的实际对象的句柄。