繁体   English   中英

将视图模型属性设置器绑定到控制方法

[英]Bind view-model property setter to control method

我目前正在处理一个对 MVVM 不友好的自定义控件,它通过普通方法而不是依赖属性公开了很多它的“属性”,或者需要通过方法设置属性,因为需要传递额外的参数。

简单的伪示例:

class TextControl : CustomControl {
    void SetText(string text, int fontSize);
    string GetText(string defaultValue);   
}

现在我想绑定到控件的“文本”,如果需要的话,只需传递一些参数的默认值。 至于“setter”,我可以创建一个附加属性并提供一个回调,然后调用SetText() ,但是“getter”呢? 有没有一种干净的方法来处理这个问题,或者是将视图传递给视图模型的唯一方法?

您可以做的是创建自己的自定义控件,该控件将简单地封装相关控件。 这样,您可以公开 MVVM 的依赖属性,但在其背后的代码中根据需要操纵和调整第三方控件。

您可以创建附加属性来提供绑定,这些属性将在内部操纵“不友好”控件。

信息: https://docs.microsoft.com/en-us/dotnet/desktop/wpf/advanced/attached-properties-overview?view=netframeworkdesktop-4.8

一个潜在的优势是附加属性可以用于多个控件。 因此,如果您碰巧有一个共享某些共同属性的第 3 方控件系列,您也许可以编写一组附加属性以用于所有这些属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM