【问题标题】:Custom Control in Silverlight ListBoxSilverlight 列表框中的自定义控件
【发布时间】: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


【解决方案1】:

根据您当前对问题的描述:

  • 确保没有在外部控件的TopLeft 属性上设置任何值。
  • 确保您绑定的列表中有多个数据项
  • 确保您的 ListBox 有足够的高度来显示多个项目
  • 确保您没有禁用 ListBox 滚动条。

除非你有更多的细节,否则我可以把所有的猜测都扔在那里。

【讨论】:

  • 谢谢,我想说这是一些很好的建议,让我看到了明显的外部网格高度,它被限制在内容的高度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-03
相关资源
最近更新 更多