【问题标题】:Why do we use itemsource actually?为什么我们实际使用 itemsource?
【发布时间】:2014-09-04 12:35:18
【问题描述】:

我是 .net 的新手,我在 msdn 上研究过,它“表示可用于呈现项目集合的控件”。 通过这一行,我的理解是假设如果我将它用于 TabControl,那么它提供了一个控件,该控件将使多个 TabItems(集合)能够在给定的 容器。

<controls:TabControl Grid.Row="0" BorderThickness="0" Background="White" 
                     ItemsSource="{Binding TabList, Mode=TwoWay, Converter={StaticResource TabConverter}}"

有人可以通过一个易于理解的示例来纠正(如果我错了),说明我们为什么要使用它。如果我们不使用它会发生什么?

【问题讨论】:

  • “你的控件里面什么都没有”外面是什么?
  • ItemsSource 驱动控件中的选项卡集合。它需要一个IEnumerable 类型的对象。简单来说,TabControl 计算枚举中的对象数量,为每个对象生成一个选项卡,设置实例化选项卡的数据上下文(到枚举对象),然后绑定系统完成其余工作。

标签: c# .net xaml itemsource


【解决方案1】:

ItemsSource 的用途是根据存储在类中的一些数据创建动态数量的选项卡(尽管您需要设置WindowDataContext

如果您不使用ItemsSource,您可以使用单独的 TabItems 来创建静态数量的选项卡。

就是这样(为列表中的每个名称显示一个选项卡):

<TabControl ItemsSource="{Binding ListOfNames}}" />

反对:

<TabControl>
  <TabItem Header="John">
  </TabItem>
  <TabItem Header="Jane">
  </TabItem>
  <TabItem Header="Dave">
  </TabItem>
</TabControl>

【讨论】:

  • 在我的情况下,我必须创建一些我在开始时不知道的 tabItems(将通过按钮单击动态创建)。所以唯一的办法是 ItemSorce ?对吗?
  • 或者在窗口中手动编码。开始使用视图模型和绑定需要做更多的工作,但在维护它时会给您带来很多乐趣。
  • 对不起,我听不懂。你的意思是要么在 xaml 中静态地做吗? (但我不知道有多少 Tabitem 用户会在 buttonclick 上做广告)
  • 您在 XAML 中所做的任何事情最终都会变成代码。以这个答案为例:stackoverflow.com/a/5487907/993547.
  • 实际问题是这样的(如果你也能回答的话,谢谢)stackoverflow.com/questions/25661264/…
猜你喜欢
  • 1970-01-01
  • 2012-08-25
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-27
  • 2020-11-11
  • 2011-04-02
相关资源
最近更新 更多