我希望能够做到这一点:
<ObjectDataProvider x:Key="dataProvider"
ObjectInstance="uiRoot:App.Current.Controller"
MethodName="GetMyViewModel">
<ObjectDataProvider.MethodParameters>
<system:Int32>{Binding Id}</system:Int32>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
重点在于
<system:Int32>{Binding Id}</system:Int32>
我无法解决这个问题。有任何想法吗? :(
答案 0 :(得分:1)
您尝试实现的WPF中的绑定只能附加到DependencyProperties。 MethodParameters属性不是DependencyProperty,因此绑定它永远不会起作用。
我的印象是你想为列表中的每个项目获取一个ObjectDataProvider。这是对的吗?
您是否尝试使用MVVM模式?在这种情况下,创建一个VM结构,使得容器ViewModel保存一个子ViewModel列表,而不是尝试通过ObjectDataProvider实例化VM。您可以将列表项绑定到子VM,而无需为每个项使用ObjectDataProvider。
结论是,您不得对列表中的每个元素使用ObjectDataProvider。
致以最诚挚的问候,
Jan van de Pol