我应该在一个非常简单的案例中与DesignData斗争。 我在Windows通用项目中定义了以下简单控件
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
your_input_string += event.unicode
这些类定义如下:
<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>
元素&#39;集合&#39;在CodeBehind中定义了ElementCollection类型,以提供有效的绑定源。
Single.xaml很简单:
public class Element
{
public Element() { }
public string Name { get; set; }
}
public class ElementCollection : ObservableCollection<Element>
{
public ElementCollection() { }
}
倍数同样如此:
<local:Element xmlns:local="clr-namespace:SimpleDataBind" Name="Single" />
在Designer中查看时,我们应该看到上面的设计数据。事实上,Control显示了单身&#39;在Grid的第一行中正确地命名。但是,控件在网格的第二行中没有显示任何内容。
我明显遗漏了一些明显的东西......
答案 0 :(得分:0)
好的,终于想通了。解决方案不是绑定到XAML中的运行时对象;即,在上面的源代码中,替换元素
ItemsSource="{Binding collection}"
使用元素
ItemsSource="{Binding}"
然后你可以在......运行时绑定到运行时对象。
它有点有趣(对于熟悉该工具的其他人可能很明显)它以这种方式工作,并且Microsoft文档有点模糊和过时(小伙伴们想要指向Silverlight文档,不要'在环球影城工作。
但无论如何,希望这有助于某人!