在一个非常简单的案例中,我正在努力使用 DesignData。我在 Windows 通用项目中定义了以下琐碎的控件
<UserControl
...
xmlns:local="clr-namespace:SimpleDataBind"
...
<UserControl.Resources>
<DataTemplate x:Key="SimpleListTemplate">
<TextBox Text="{Binding Name}" />
</DataTemplate>
</UserControl.Resources>
<Grid>
<StackPanel Grid.Row="0" d:DataContext="{d:DesignData Source=./DesignData/Single.xaml}">
<TextBox Text="{Binding Name}"/>
</StackPanel>
<ListView Grid.Row="1" d:DataContext="{d:DesignData Source=./DesignData/Multiple.xaml}"
ItemTemplate="{StaticResource SimpleListTemplate}"
ItemsSource="{Binding collection}">
</ListView>
</Grid>
类定义如下:
public class Element
{
public Element() { }
public string Name { get; set; }
}
public class ElementCollection : ObservableCollection<Element>
{
public ElementCollection() { }
}
类型为 ElementCollection 的元素“集合”在 codeBehind 中定义,以提供有效的绑定源。
Single.xaml 很简单:
<local:Element xmlns:local="clr-namespace:SimpleDataBind" Name="Single" />
倍数同样如此:
<local:ElementCollection xmlns:local="clr-namespace:SimpleDataBind" >
<local:Element Name="Multiple Pete" />
<local:Element Name="Multiple George" />
<local:Element Name="Multiple John" />
</local:ElementCollection>
在 Designer 中查看时,我们应该看到上面的设计数据。确实,控制在网格的第一行中正确地将“单一”显示为名称。但是,控件在网格的第二行中没有显示任何内容。
我显然错过了一些明显的东西......