【问题标题】:C# WPF - Binding value of dictionary as value of parent dictionayC# WPF - 将字典的值绑定为父字典的值
【发布时间】:2017-08-01 15:06:30
【问题描述】:

我在 WPF 中使用 RadGridView。对于他的 ItemsSource,我正在使用这个:

Dictionary<DateTime, Dictionary<int, double>>

因为这是我找到的最佳方式。 我动态创建列。对于值绑定,我做到了:

colonneDate.DataMemberBinding = new Binding("key");
colonneVariable.DataMemberBinding = new Binding(string.Format("value[{0}].value", v.Id));

但第二个不起作用(结果为空)。不知道怎么获取value的值。

你能帮帮我吗?

谢谢!

【问题讨论】:

  • 您好,谢谢您的回答。我想使用一个自定义类,但是会有太多行,因为在同一个日期我有不同的情侣 ID/值。这是我在字典中使用的字典。于是,我又找了个方法,我就去用DataTable作为ItemsSource。我反转了 DataTable 列并将其推送到 RadGridView 中。问题被绕过了。
  • 所以我还有一个问题:如果我使用列表和自定义类,ItemsSource 将是自定义类的列表。例如:"01/05/2014 - 1 - 12.5" "01/05/2014 - 2 - 15" "01/05/2014 - 3 - 1.5" 如何按日期区分项目并按 ID(第二个属性)显示?实际上,我使用的是一个在数据透视表中反转的 DataTable。

标签: c# wpf binding radgridview


【解决方案1】:

var 绑定 = 新绑定

{ Path = new PropertyPath("DoubleValue"),

StringFormat = "{0:F1}"

};

textBlock.DataContext = viewModel;

textBlock.SetBinding(TextBlock.TextProperty, binding);

【讨论】:

  • 嗨,它不工作,但你为什么使用 textBlock ?我正在设置 GridViewDataColumn。谢谢
【解决方案2】:

我绕过了我的问题:

为了替换我的字典,我使用了一个数据表(就像我在评论中所说的那样)。我用一种方法反转了这个 DataTable 以获得想要的结果。 在此之后,我使用 DataGrid(替换 RadGridView)。 ItemsSource 是我的 DataTable,列和行是自动生成的。

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 2011-03-27
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    相关资源
    最近更新 更多