绑定WPF中ObjectDataProvider中的参数值

时间:2010-06-02 09:07:21

标签: wpf data-binding parameters objectdataprovider

我希望能够做到这一点:

    <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>

我无法解决这个问题。有任何想法吗? :(

1 个答案:

答案 0 :(得分:1)

您尝试实现的WPF中的绑定只能附加到DependencyProperties。 MethodParameters属性不是DependencyProperty,因此绑定它永远不会起作用。

我的印象是你想为列表中的每个项目获取一个ObjectDataProvider。这是对的吗?

您是否尝试使用MVVM模式?在这种情况下,创建一个VM结构,使得容器ViewModel保存一个子ViewModel列表,而不是尝试通过ObjectDataProvider实例化VM。您可以将列表项绑定到子VM,而无需为每个项使用ObjectDataProvider。

结论是,您不得对列表中的每个元素使用ObjectDataProvider。

致以最诚挚的问候,

Jan van de Pol