【问题标题】:Custom Item Template for ComboBox Items组合框项目的自定义项目模板
【发布时间】:2015-01-02 21:24:48
【问题描述】:

以下 XAML 看起来与我想要的一样。它基本上是一个带有复选框和一些文本的下拉菜单。

<ComboBox x:Name="comboBox">
  <ComboBoxItem><CheckBox>WeeHee</CheckBox></ComboBoxItem>
  <ComboBoxItem><CheckBox>BuuHuu</CheckBox></ComboBoxItem>
</ComboBox>

然后我了解到这些选项可以动态调整,因此我更改了标记并将组合框绑定到一个数组。这很好用功能方面,但现在我只得到选项的名称,而复选框不见了。

<ComboBox x:Name="comboBox" 
          ItemsSource="{x:Static local:MainWindow.AllKinds}">
</ComboBox>

所以我正在寻找一种方法来创建自定义项以填充组合框但仍然以便动态绑定数据。我假设 WPF/XAML 支持这样的功能,但我太无知了,不知道该谷歌搜索什么。

所以我的要求是关于谷歌搜索的基本示例建议。 (可能对除了我以外的所有人来说都是显而易见的。)

【问题讨论】:

  • 您只需像使用 ItemsControl.ItemTemplate 一样使用 ComboBox.ItemTemplate,因为这就是提供 ComboBoxItem 的全部内容。它的数据绑定方面有一堆different tutorials,很容易。
  • 哦,我不会像 ItemsControl.ItemTemplate 那样使用它。那是因为我一开始就不知道模板!现在,我刚刚了解到它,事实证明它很容易解决。也很顺利。谢谢!请将其作为回复发布,以便我接受答案。
  • @KonradViltersten WPF 提供了很多值得学习的东西。如果您正在考虑阅读一本综合性书籍,我会推荐 Adam Nathan 的“WPF Unleashed”。

标签: c# wpf xaml data-binding combobox


【解决方案1】:

因此,对于大多数从 ItemSource 提供内容的控件,都有一个漂亮的内置功能,可让您指定每个项目的外观/行为等。因此,您可以通过设置自己的 ItemTemplate 来指定 ComboBox 中的每个项目。

由于 ComboBox 仅使用 ItemsControl 来列出其项目,因此您可以通过 ComboBox.ItemTemplate 使用它来制作您喜欢的项目,在这种情况下可能类似于(伪)。

<ComboBox>
  <ComboBox.ItemTemplate>
    <DataTemplate>
       <CheckBox>
    </DataTemplate>
  </ComboBox.ItemTemplate>
</ComboBox>

希望这会有所帮助,当您想开始自定义 wpf、silverlight、wp、win-rt 等之间的项目生成列表时,它会提供一些非常方便的信息。干杯!

【讨论】:

  • 只要我允许,你就会为干净的样本获得 +1(显然,我今天已经慷慨地投票了。
  • 哈别担心,很高兴你得到了治疗,谁不喜欢学习新东西呢?已经为你 +1 了,干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-19
相关资源
最近更新 更多