|
|
1
0
有几种方法可以访问超出范围的数据上下文。 1)elementname绑定 这可能是最不有用的,因为在大多数现实场景中,您尝试绑定的内容都超出了名称范围。但这是一种访问并行或父数据上下文的方法,只要框架元素在名称范围内。
2)相对资源绑定 这类似于1,但使用relativesource导航到适当的可视元素并获取数据上下文。当然,这假定您尝试获取的数据上下文位于您当前在可视化树中的位置之上。 3)使用静态继电器 您可以在作为ViewModel外观的静态类中公开替代的ControlPresenter。然后,在每个ViewModel中构造传递给静态方法/属性的实例属性。这是跨多个视图模型实现共享存储的常用方法。我知道这种技术需要您稍微改变一下您的模式,但是在这些“ControlPresenter”类周围添加一个简单的ViewModel包装器似乎比您描述的选项要简单得多。 |
|
|
2
0
我最终在代码中设置了绑定,方法是将binding.source设置为所需的ViewModel,然后在数据库中使用binding.path的路径。我将绑定存储在一个字典(DependencyProperty,bindingBase)中,当控件加载时,我使用bindingOperations.setbinding设置控件上的绑定。除了偶尔出现的操作顺序问题(例如,如果在itemssource之前设置了selectedItem/selectedValue,则会设置该项,但不会显示在组合框中),这似乎非常有效。 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |
|
|
Barta · WPF MVVM不更新视图 1 年前 |
|
|
Denis Ivanov · WPF控件在属性更改时不会更新 1 年前 |
|
|
codymanix · WPF:TextBlock周围可见小边框? 1 年前 |
|
|
Nostromo · 来自背景对象的工具提示 2 年前 |
|
|
Nuvolari · 从可观测集合添加/删除时出现对象处理异常 2 年前 |
|
|
CCarter · 只能在设计器中DependencyObject的DependencyProperty上设置显示“Binding”的WPF ICommand DependencyProperties[重复] 2 年前 |
|
|
Thern · 在UI线程(WPF)上的void方法中调用异步函数 2 年前 |