【发布时间】:2014-01-29 16:06:40
【问题描述】:
我在我的 ViewModel 中构建一个 scrollViewer 及其元素,它被构建到一个属性 FrameworkElement PageElement 中,我每次发生某些事件时都重建 pageElement,我想将 PageElement 绑定到视图中的一个真正的 scrollViewer这样每当我更改 pageElement 时,它就会在它的视图中绘制自己。
【问题讨论】:
-
在您的 VM 中构建 UI 元素是不是 MVVM。您应该注意 UI 中的 UI 问题以及 VM 中的程序逻辑。
-
你到底想达到什么目的?
-
我正在尝试根据很多逻辑条件构建 UI 元素,这就是为什么我必须在 VM 中完成它。问题是如何将构建的 FrameWorkElement 发送到视图。
-
你没有“必须”在虚拟机中做任何事情。你总是可以从后面的代码中获取虚拟机 var vm = myControl.DataContext as MyVMType ... Task.Factory.StartNew(async() =>{ //你的长期运行逻辑 });
-
@Will,说“不是 MVVM”很微妙。我认为它可以是绑定或不绑定 UI 元素的 MVVM。话虽如此,我将继续这样做会使 MVVM 的许多好处无效。围绕如此灵活的模式阅读最后通牒只是一件奇怪的事情。
标签: xaml mvvm windows-8 binding winrt-xaml