0
我真的不明白。WPF词典通过键绑定不起作用
我创建了一个视图模型类,其中包含两个对象,像这样的:
public class MyViewModel{
public MyFirstObject FirstObject {get;set;}
public MySecondObject SecondObject {get;set;}
...
// Constructors and so on...
}
的FirstObject看起来是这样的:
public class MyFirstObject {
public int Id {get;set;}
...
// Constructors and so on...
}
}
而且MySecondObject包含字典:
public class MySecondObject{
public Dictionary<int, string> MyDict {get;set;}
...
// Constructors and so on...
}
}
我想现在要做的,是让dictionarys价值的关键,这是一个refence到MyFirstObject.Id - 这样的:
mySecondObject.myDict[myFirstObject.Id]
在C#这样做很容易,但现在我想在xaml中执行此操作。 我创建了一个UserControl并将DataContext设置为MyViewModel引用。
在那之后,我尝试这样做:
<TextBox Text={Binding SecondObject[FirstObject.Id]} ../>
不幸的是这是行不通的,因为键“FirstObject.Id”无法找到。
有没有人有一个想法如何解决这个问题?
非常感谢! CodeCannibal
嗯 - 我试过,但这只适用于我f值永远不会更新:) 我实现了一个ObservableCollection对象,以确保该值始终是最新的。绑定到'MyDictValue'不会这样做。 这里是另一个我忘记评论的重要通知:我正在开发一个win8应用程序 - 而不是一个wpf应用程序。我试图将多重绑定与转换器结合使用,但多赢不再是win 8应用程序的支持者。 – CodeCannibal 2013-03-04 10:50:42
是的值不会更新,但你没有在你的问题中提到你想要更新。但没有什么能阻止你委派这些事件。你可以在你的FirstObject和SecondObject设置器中触发'PropertyChanged(“MyDictValue”)''。如果你的SecondObject是/有一个'ObservableCollection',你可以订阅它的事件,你可以触发'PropertyChanged(“MyDictValue”)等等。 – nemesv 2013-03-04 11:14:57
哦 - 知道我明白了。谢谢 - 这是我正在寻找的解决方案。如果我得到它的工作,我会在这里发布我的解决方案。 – CodeCannibal 2013-03-04 11:17:20