我正在编写MVVM应用程序,并在ViewModel中创建了Dictionary<Geschäftsjahr, object>
类型的属性。
Geschäftsjahr
对象具有2个属性,并具有两个不同的年份(例如:2017/18)。 ToString()-Method完全以这种格式返回数据。
现在,我想将字典的某个条目与XAML绑定到TextBox。 是否可以通过以下方式访问字典:
<TextBox Text={Binding Path=ViewModelProperty[2017/18]} ... />
通过密钥访问字典非常重要。实际上,这种方式行不通...
谢谢尼古拉斯
答案 0 :(得分:0)
创建覆盖返回格式化日期的新属性,而不是覆盖类的ToString()方法。请参见下面。
返回正确格式日期的新属性:
public string DatesDisplayText => "(Do your formatting here)";
然后您的xaml可能如下所示:
<TextBox Text={Binding Path=ViewModelProperty[Key].DatesDisplayText} ... />
答案 1 :(得分:0)
是否可以通过以下方式访问字典?
仅当字典的键是编译时常量时,例如int
1
或string
“ abc”。
如果键是Geschäftsjahr
,则不可能。然后,您最好绑定到为您执行查找的属性,例如:
public string Text => ViewModelProperty[new Geschäftsjahr(2017, 2018)];
XAML:
<TextBlock Text="{Binding Text}" />