可以将数据绑定与WPF框架的内容属性一起使用吗?
我可以使用数据绑定来设置WPF框架的初始内容,但是对绑定属性(使用INotifyPropertyChange实现)的后续更改似乎不会更改内容 另外,是否有人知道以这种方式直接绑定到Content属性会导致绑定项出现在Frame或NavigationWindow的日志中可以将数据绑定与WPF框架的内容属性一起使用吗?,wpf,mvvm,navigation,frame,Wpf,Mvvm,Navigation,Frame,我可以使用数据绑定来设置WPF框架的初始内容,但是对绑定属性(使用INotifyPropertyChange实现)的后续更改似乎不会更改内容 另外,是否有人知道以这种方式直接绑定到Content属性会导致绑定项出现在Frame或NavigationWindow的日志中 一些上下文:我意识到我可能应该使用NavigationService与框架交互,但我正在尝试遵循MVVM模式。似乎将数据绑定到Content属性要简单得多…框架是导航主机,因此使用NavigationService导航到不同的内容
一些上下文:我意识到我可能应该使用NavigationService与框架交互,但我正在尝试遵循MVVM模式。似乎将数据绑定到Content属性要简单得多…框架是导航主机,因此使用NavigationService导航到不同的内容更为正确。如果您使用INotifyPropertyChange,我假设您在内容更改时调用相关事件。然后,我还认为使用导航服务并不困难。WPF社区中的许多人都认为内置的导航框架被破坏了。但是,即使要使用它,绑定Content属性也不是正确的方法。如果希望将MVVM与导航结合使用,则应将其与FrontController模式结合使用,其中ViewModel向控制器发送导航请求,然后控制器会为您解析该请求。这个概念的例子不多,因为(正如我前面提到的)许多开发人员都使用WPF的内置导航
如果您想查看一个非常健壮的WPF导航引擎,它是MVC路由引擎到WPF的一个端口。您可以对帧使用数据绑定,但需要确保绑定模式设置为双向 XAML:
几天前我遇到了这个问题。我有一个带有框架的主窗口,我将不同的页面加载到框架中(使用
Navigate()
)。页面的数据绑定被破坏,数据没有显示在加载的页面上
若要修复绑定,请创建或将现有的
DataContext
提供给框架内的页面,绑定将再次工作。出于某种原因,这不会更新框架-我是从窗口包含框架的窗口视图模型中执行此操作的
<Frame Content={Binding Path=MyProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged} />
public class MyViewModel : INotifyPropertyChanging, INotifyPropertyChanged
{
public Page MyProperty
{
get
{
return _viewModelPage;
}
set
{
this.OnPropertyChanging("MyProperty");
_viewModelPage = value;
this.OnPropertyChanged("MyProperty");
}
}
}