【问题标题】:Value of text box disapears - binding viewmodel to a tab (content control)文本框的值消失 - 将视图模型绑定到选项卡(内容控件)
【发布时间】:2011-02-19 14:18:21
【问题描述】:

基于 Josh Smith 的 MVVM example,我实现了多选项卡选项,该选项将不同的选项卡绑定到不同的视图模型 使用将视图模型绑定到视图的简单数据模板。

 <DataTemplate  DataType="{x:Type fixtureVM:SearchViewModel}">
    <SearchVw:SearchView/>
</DataTemplate>

我遇到的问题是,当我切换选项卡然后再次切换回来时,文本框中的值消失了。当我将文本框中的文本绑定到 ViewModel 中的值时,它不会消失。这很好,我可以克服这个问题,但我遇到了另一个问题,例如,一旦选项卡失去焦点,网格中滚动条的位置就会消失。

为什么价值消失了?我假设它是清理资源的 WPF 子系统任务!?我怎样才能避免这种情况?我也觉得这可能会降低我的应用程序的速度。

【问题讨论】:

  • 您需要提供更多详细信息和更多代码。什么文本框?什么滚动条?切换选项卡时执行什么代码(如果有)?顺便说一句,没有可能导致这种情况的“清理资源的 WPF 子系统任务”。

标签: .net wpf performance binding mvvm


【解决方案1】:

阅读我的帖子here,了解为什么会发生这种情况。基本上,因为您在 DataTemplate 中连接 View 和 ViewModel,所以选项卡在每次收到焦点时都会重新创建视图。是的,这会消耗更多资源。您可以通过以不同方式连接视图和 ViewModel 来解决此问题(即 Catelog 方法、WAF 或使用不同类型的项目控件也可以解决问题......)

【讨论】:

  • 谢谢您,我认为如果没有人遇到我的问题,这将是其中一种情况! catelog方法是什么?
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多