将集合绑定到 StackPanel

2023-12-29

我想获取一个对象集合并将其绑定到 StackPanel,所以基本上如果该集合有 4 个元素,那么在堆栈面板内应该生成 4 个按钮。

我尝试过这个...但我认为这不是正确的方法。我过去使用 DataTemplated 做过这种类型的想法。如果我错了,请纠正我。

这是我的假模型

public class MockModel
{
   public ObservableCollection<MockNode> Nodes;

   public MockModel()
   {
      Nodes = new ObservableCollection<MockNode>();
   }
}

public class MockNode
{
   public MockNode()
   {
   }

   private string itemname;
   public string ItemName
   {
      get { return this.itemname; }
      set { this.itemname = value; }
   }
}

在代码中我像这样设置 DataContext...

// Init Model
MockModel myModel = new MockModel();

for (int i = 0; i < 4; i++)
{
   MockNode mn = new MockNode();
   mn.ItemName = String.Format("Node {0}", i);
   myModel.Nodes.Add(mn);
}
// Set DataContext for StackPanel
Stack.DataContext = myModel.Nodes;

还有xaml

<StackPanel x:Name="tStack">
   <ItemsControl ItemsSource="{Binding Nodes}">
      <ItemsControl.Template>
         <ControlTemplate>
            <Button Content="{Binding ItemName}"/>
         </ControlTemplate>
      </ItemsControl.Template>
   </ItemsControl>
</StackPanel>

它确实绑定了,但不是 4 个按钮,我只有一个按钮......

Ideas?


好吧,我已经弄清楚了......使用ItemsControl解决了问题...

<ItemsControl x:Name="tStack" ItemsSource="{Binding Items}">
   <ItemsControl.ItemsPanel>
      <ItemsPanelTemplate>
         <StackPanel Orientation="Horizontal"/>
      </ItemsPanelTemplate>
   </ItemsControl.ItemsPanel>
   <ItemsControl.ItemTemplate>
      <DataTemplate>
         <Button Content="{Binding ItemName}"/>
      </DataTemplate>
   </ItemsControl.ItemTemplate>
</ItemsControl>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将集合绑定到 StackPanel 的相关文章

随机推荐

  • 如何处理 Facebook 新的 UID 大小?

    我在 Facebook 应用程序上做了一些工作 但是当我注册一个新用户来测试朋友交互时 新用户获得了一个 uid 100000XXXXXXXXX 对于 php 来说处理起来似乎太大了 将数字保存到数据库中会产生相同的值 2147483647
  • 在 Umbraco 7 中使用 html 页面作为自定义部分,无需树

    我有一个 HTML 页面 想要在 Umbraco 7 的自定义部分中显示 我想在该部分中不包含任何树的情况下执行此操作 因为所有内容都已在 html 文件中处理 它被放置到 Umbraco 后端以方便访问 到目前为止 我已经实现了 IApp
  • Webpack style-loader / css-loader:url() 路径解析不起作用

    有一些关于的帖子style loader and css loader 但尽管如此 我仍然无法找到解决我的问题的方法 简而言之 当我 import css其他文件中的文件css文件 以及导入的css包含url 如果使用相对路径 则路径无法正
  • 删除 iOS/WebKit 文本区域中的 3 个像素

    我正在尝试创建一个textarea看起来完全像div 然而 在 iOS 上 有 3 个像素来自我无法删除的地方 这是我的代码 div test div hr
  • nginx默认无法打开index.php

    我的服务器定义有什么问题 如果我尝试访问 www testing com 我会下载一个二进制文件而不是index php 而如果我尝试访问 testing com 我会下载index php 我已经尝试将服务器名称设置为 servernam
  • 如何在文件中传递超过9个参数。 htaccess(mod_rewrite)?

    我在使用 mod rewrite apache 在 htaccess 文件中使用超过九个参数时遇到麻烦 例如 如果我传递参数 10 something mod rewrite 传递参数 1 的值 对此有什么解决方案吗 答案很简单 你不能 h
  • 最佳 Common Lisp IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我可以使用 CMake 创建 XCode (OCUnit) 的 iOS 单元测试目标吗?

    我目前使用 CMake 为静态库和应用程序目标创建 iOS xcode 项目 现在也想从 CMake 创建单元测试目标 但尚未找到有关 CMake 是否支持此功能或如何创建 octest 目标的任何资源 我可以从 CMake 创建这个吗 如
  • 如何在linux中为sed命令设置临时文件目录?

    我有 bash 脚本 它修改了这样的文件 sed i hello world d etc postfix virtual 我从网络应用程序运行了这个脚本 sed 命令在该目录中创建临时文件 但 Web 应用程序运行的用户没有在该目录中创建文
  • 用户“root”已超出“max_questions”资源(当前值:1)

    您好 我正在使用 MySQL Workbench 并且我不小心将 root 用户的 max questions 设置为 1 现在我已注销 并且无法登录 我等了 1 小时 但在测试连接时仍然收到错误 User root has超过 max q
  • Scala:以高效的方式将字符串迭代器写入文件

    我有数千个文件 50K 每个文件大约有 10K 行 我读取文件并进行一些处理 然后将这些行写回输出文件 虽然我的读取和处理速度更快 但将字符串迭代器转换回单个字符串并将其写入文件的最后一步需要很长时间 几乎一秒钟 我不会为整个过程进行数学计
  • 如何生成唯一的订单号?

    我正在寻找一种生成唯一订单 ID 的好方法 你能看出下面的代码有什么问题吗 int customerId 10000000 long ticks DateTime UtcNow Ticks long orderId customerId t
  • 我尝试将 postgresql md5 更改为 scram-sha-256,但出现 FATAL 密码身份验证失败

    我在用着postgresql作为学习的一部分 我尝试更改登录方法以获得更安全的登录方法 例如使用scram sha 256代替md5 我试图改变我的password encryption to scram sha256 in postgre
  • Ansible,字段 args 具有无效值[重复]

    这个问题在这里已经有答案了 我向我的 playbook yml 添加了一个名为 common 的角色 但配置失败并显示以下消息 TASK common Host is present gt cd fatal localhost FAILED
  • HTTP请求头X-Requested-With从哪里来

    众所周知 我们可以使用X Requested Withhttp请求头来判断http请求是否来自Ajax 许多 javascript 框架会自动添加X Requested Withajax请求中的header 比如jQuery Ajax ht
  • Java:如何通过 org.w3c.dom.document 上的 xpath 字符串定位元素

    如何通过给定 org w3c dom document 上的 xpath 字符串快速定位一个或多个元素 似乎没有FindElementsByXpath 方法 例如 html body p div 3 a 我发现当存在大量同名元素时 递归迭代
  • 如何访问白色的消息框?

    我在 WPF 应用程序中有一个简单的消息框 启动方式如下 private void Button Click object sender RoutedEventArgs e MessageBox Show Howdy Howdy 我可以得到
  • 如何检查一个 JavaScript 对象中的值是否存在于另一个 JavaScript 对象中?

    我正在尝试比较 json str1 和 json str2 这里它应该返回 true 因为 json str1 中的所有元素都存在于 json str2 中 现在我正在这样做 json str1 0 a 1 b 2 c json str2
  • jsp 包含中的 HTTP 状态 500 文件未找到错误

    我包含根目录中的文件 它在本地工作正常 但当我托管我的网站时 它给我 错误 HTTP 状态 500 未找到 connection jsp 我的文件在 public html myfolder connection jsp 在共享主机上 我想
  • 将集合绑定到 StackPanel

    我想获取一个对象集合并将其绑定到 StackPanel 所以基本上如果该集合有 4 个元素 那么在堆栈面板内应该生成 4 个按钮 我尝试过这个 但我认为这不是正确的方法 我过去使用 DataTemplated 做过这种类型的想法 如果我错了