WPF / XAML:通过键绑定到Dictionary <object,object =“”>项

时间:2018-08-20 14:05:03

标签: c# wpf dictionary binding

我正在编写MVVM应用程序,并在ViewModel中创建了Dictionary<Geschäftsjahr, object>类型的属性。

Geschäftsjahr对象具有2个属性,并具有两个不同的年份(例如:2017/18)。 ToString()-Method完全以这种格式返回数据。

现在,我想将字典的某个条目与XAML绑定到TextBox。 是否可以通过以下方式访问字典:

<TextBox Text={Binding Path=ViewModelProperty[2017/18]} ... /> 

通过密钥访问字典非常重要。实际上,这种方式行不通...

谢谢尼古拉斯

2 个答案:

答案 0 :(得分:0)

创建覆盖返回格式化日期的新属性,而不是覆盖类的ToString()方法。请参见下面。

返回正确格式日期的新属性:

public string DatesDisplayText => "(Do your formatting here)";

然后您的xaml可能如下所示:

<TextBox Text={Binding Path=ViewModelProperty[Key].DatesDisplayText} ... />

答案 1 :(得分:0)

  

是否可以通过以下方式访问字典?

仅当字典的键是编译时常量时,例如int 1string“ abc”。

如果键是Geschäftsjahr,则不可能。然后,您最好绑定到为您执行查找的属性,例如:

public string Text => ViewModelProperty[new Geschäftsjahr(2017, 2018)];

XAML:

<TextBlock Text="{Binding Text}" />