【问题标题】:Wpf binding to class with unknown properties countWpf 绑定到具有未知属性计数的类
【发布时间】:2009-10-05 09:44:15
【问题描述】:

我的产品类具有未知数量的属性,例如“名称”、“价格”等。我只在解析一些 txt 文件时才检索它们。

我应该怎么做:

  1. 编写一个 Product 类来实现动态添加属性
  2. 将此具有未知数量属性的产品集合绑定到 XAML 中的 ListView(或者我应该在解析 txt 文件后构建代码吗?)

【问题讨论】:

  • 您是否希望这些属性的值发生变化,并希望 ListView 相应地更新自身?还是这些产品是只读的?

标签: wpf binding


【解决方案1】:
  1. 您可以使用Dictionary<string, object> 来存储属性名称和相关值。

  2. 您需要根据字典中的键在代码隐藏中动态生成列。您可以使用"Properties[SomeKey]" 之类的绑定路径绑定到字典的特定项(假设您的字典名为Properties)。

【讨论】:

    【解决方案2】:

    感谢托马斯的快速回答。 - 我制作对象为List<string>的字典 - 我试图绑定到 GridView 但没有结果 只是这个测试实施有效,但当然这不是我想要的 我应该写什么:

    • Grid1.DataContext
    • listView1.ItemsSource
    • gvc.DisplayMemberBinding

    _

    enter code here
    
    _importView = new Views.ImportBomView();
            _importView.Grid1.DataContext = _dynimicList;
            _importView.listView1.ItemsSource = (IEnumerable)_dynimicList.PropsDict["Value"];
            foreach (var item in _dynimicList.PropsDict.Keys)
            {
                GridViewColumn gvc = new GridViewColumn();
                gvc.DisplayMemberBinding = new Binding();
                gvc.Header = item;
                gvc.Width = 100;
    
                _importView.gridView1.Columns.Add(gvc);
            }
    
            _importView.Show();
    

    【讨论】:

      猜你喜欢
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 2017-05-14
      • 2011-01-20
      相关资源
      最近更新 更多