dth*_*her 6 navigation wpf frame mvvm
我可以使用数据绑定来设置WPF框架的初始内容,但是对绑定属性的后续更改(使用INotifyPropertyChange实现)似乎不会更改内容.
另外,有没有人知道以这种方式直接绑定到Content属性是否会导致绑定项出现在Frame或NavigationWindow的日志中?
一些上下文:我意识到我应该使用NavigationService与Frame交互,但我试图遵循MVVM模式.似乎将数据绑定到Content属性会简单得多......
您可以对Frame使用数据绑定,但需要确保绑定的Mode设置为TwoWay.
XAML:
<Frame Content={Binding Path=MyProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged} />
Run Code Online (Sandbox Code Playgroud)
查看型号:
public class MyViewModel : INotifyPropertyChanging, INotifyPropertyChanged
{
public Page MyProperty
{
get
{
return _viewModelPage;
}
set
{
this.OnPropertyChanging("MyProperty");
_viewModelPage = value;
this.OnPropertyChanged("MyProperty");
}
}
}
Run Code Online (Sandbox Code Playgroud)
WPF 社区中的许多人都认为内置导航框架已被破坏。但是,即使您要使用它,绑定 Content 属性也不是正确的方法。如果您想将 MVVM 与导航结合使用,您应该将其与 FrontController 模式结合起来,其中 ViewModel 将导航请求分派到控制器,然后控制器为您解析该请求。这个概念的示例并不多,因为(正如我之前提到的)许多开发人员转而使用 WPF 的内置导航。
如果您想为 WPF 查看一个非常强大的导航引擎,请查看 nRoute它是 MVC 路由引擎到 WPF 的端口。
| 归档时间: |
|
| 查看次数: |
11867 次 |
| 最近记录: |