我正在尝试将应用程序的核心移植到可移植类库,并且似乎没有绑定支持。
我正在尝试将我的ViewModel上的属性绑定到我的Model,它由ObservableDictionary(INotifyPropertyChanged, INotifyCollectionChanged, IDictionary<string, string>
)组成。我通常在初始化视图模型时使用以下代码执行此操作(使用WP7):
SetBinding(MyProperty, new Binding(string.Format("MyDictionary[{0}]", "thekey")) { Source = MyModel });
在使用可移植类库时,如何看待Binding类不可用,我将如何处理?
答案 0 :(得分:0)
我已经通过将ViewModel的基类连接到ViewModel的PropertyChanged事件和ObservableDictionary的NotifyCollectionChanged事件来实现这一点。然后我有一个方法(带有一组重载,用于另外提供IPclValueConverter的实现,它是IValueConverter的副本),它添加到PclBinding对象的集合,这是一组PropertyInfo,字典键,IPclValueConverter和转换器参数
在PropertyChanged / NotifyCollectionChanged中,我检查是否应该更新绑定,如果是,请执行更新,如果存在,则通过转换器传递值。
这意味着从我的原始示例中,我现在在我的ViewModel中编写以下内容,根据需要创建绑定:
SetBinding(() => MyProperty, "theKey");
如果有人真正对此代码感兴趣,我很乐意将其发布。 :)