【发布时间】:2016-03-20 13:39:57
【问题描述】:
我在网上搜索过,并没有找到任何对这个简单问题的直接解释......
我有一个正在开发的 UWP 应用程序,我只需要知道如何访问位于视图的 XAML 中的 Grid 元素或 Textblock 元素。我遇到的每一篇文章都是关于数据绑定的。我不想绑定数据。我只是想了解位于我的视图中的那些元素,以便我可以操纵它们。
例如,我遇到的一个主要问题是找到一种 MVVM 方法来从我的 ViewModel 中操作 RichEditBox。此特定控件无法完全通过 XAML 进行操作,需要使用代码。
是的,基本上,我如何从 ViewModel 中获取对这些对象的引用?
【问题讨论】:
-
你需要先了解更多关于 MVVM 的知识。 MVVM 背后的想法是将视图(ui)与视图模型(表示逻辑)分开。话虽这么说,ViewModel 不知道视图内部发生的任何事情,所以答案是:根本不知道。你有命令和可通知的属性,这就是你用来与视图通信的东西。您可以使用其他工具来解决它,例如附加属性。附加属性可以附加到 XAML 中的用户控件,您可以将属性或命令绑定到它。
-
如果你有一个足够复杂和通用的解决方案,你可以做一个用户控制。在用户控件中,您可以使用后面的代码来放置所有需要的逻辑,然后公开依赖属性以将命令和属性绑定到它。请参阅我对 stackoverflow.com/a/35983746/455493 和 stackoverflow.com/a/35395128/455493 背后的用户控件和代码的类似问题的回答
标签: c# wpf xaml mvvm win-universal-app