在 WPF 中绑定 ObjectDataProvider 中的参数值

发布于 2024-09-04 01:44:20 字数 555 浏览 4 评论 0原文

我希望能够做到这一点:

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

我无法回避这一点。有什么想法吗? :(

I would like to be able to be doing this :

    <ObjectDataProvider x:Key="dataProvider"
                        ObjectInstance="uiRoot:App.Current.Controller" 
                        MethodName="GetMyViewModel">
        <ObjectDataProvider.MethodParameters>
            <system:Int32>{Binding Id}</system:Int32>
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>

The emphasis being on

            <system:Int32>{Binding Id}</system:Int32>

I can't get around this. Any ideas? :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

生生漫 2024-09-11 01:44:20

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

我的印象是您希望为列表中的每个项目获取一个 ObjectDataProvider。这是正确的吗?

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

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

谨致问候,

扬·范德波尔

Bindings in WPF as you are trying to achieve can only be attached to DependencyProperties. The MethodParameters property is not a DependencyProperty, so binding to it will never work.

I'm under the impression that you want to get an ObjectDataProvider for each item within a list. Is that correct?

Are you trying to use the MVVM pattern? In that case create a VM structure in such way that a container ViewModel holds a list of child ViewModels, instead of trying to instantiate a VM trough an ObjectDataProvider. You can bind the list items to the child VM's without having to use an ObjectDataProvider for each item.

Conclusion is that you must not use an ObjectDataProvider for every element in the list.

Best regards,

Jan van de Pol

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文