【发布时间】:2011-02-28 21:48:22
【问题描述】:
我有一个从我创建并导出到 xaml 的表达式设计中创建的自定义控件。我在其中放入了 ListBox 控件的绑定 itemtemplate/datatemplate。它似乎不止一次渲染和/或它在同一个地方渲染每个项目(有点像相同的 x,y 坐标。
在我看来,这应该是一个简单的过程。如果我用文本块填充数据模板,它将在垂直列表中生成几个文本块。我希望如果我用我的自定义控件交换文本块,我应该在垂直列表中获得几个自定义控件。
这不是预期的行为,还是列表框似乎只呈现单个用户控件的原因?在这两种情况下,我都对列表框使用相同的数据。
<telerik:ListBox x:Name="PeopleList" Grid.Row="1" >
<telerik:ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<custom:ExecSelector Height="100" Width="100" x:Name="ExecSelector" FullName="{Binding City}"></custom:ExecSelector>
</Grid>
</DataTemplate>
</telerik:ListBox.ItemTemplate>
</telerik:ListBox>
People = new List<PersonViewModel>();
PersonViewModel person2 = new PersonViewModel()
{
Name = "Austin Weise",
City = "Texas",
Email = "austin@build1.ca",
Position = "Techincal Director",
Bio = "Programmer"
};
PersonViewModel person = new PersonViewModel()
{
Name = "Ian House",
City = "Vancouver",
Email = "Ian@build1.ca",
Position = "Creative Director",
Bio = "Designer"
};
People.Add(person2);
People.Add(person);
PeopleList.DataContext = this;
PeopleList.ItemsSource = People;
除非自定义控件需要 UI 元素,否则这应该足以将其可视化。
【问题讨论】:
-
请问您有什么问题,具体点!
标签: silverlight data-binding user-controls