C# 如果在查看';s InitializeComponent
我在MainWindowViewModel中有一个绑定的Usercontrol,当我在代码中更改它时,它不会在视图中更新 MainWindowView.xamlC# 如果在查看';s InitializeComponent,c#,wpf,xaml,mvvm,user-controls,C#,Wpf,Xaml,Mvvm,User Controls,我在MainWindowViewModel中有一个绑定的Usercontrol,当我在代码中更改它时,它不会在视图中更新 MainWindowView.xaml <Window x:Class="HataTracker.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.mi
<Window x:Class="HataTracker.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="648" Width="1152">
<Grid>
<UserControl Content="{Binding ContentView}"/>
</Grid>
MainWindowViewModel.cs
public partial class MainWindowViewModel : BaseViewModel
{
public UserControl ContentView { set; get; }
public MainWindowViewModel()
{
ContentView = new SearchView();
}
}
SearchView是一个用户控件
当我第一次运行该程序时,它工作正常,我在ContentView显示区域中获得了我的SearchView
问题是:
如果我将内容视图更改为其他视图,比如CreateView,我的SearchView将保留在屏幕上
如果我在MainWindowModelView构造函数中没有将值放入ContentView,它将保持为空
问题:
- 如何交换绑定的Usercontrol并使更改反映在视图上
ContentView
属性。我已将UserControl ContentView替换为BaseViewModel类型,并且我有相同的问题,当在应用程序运行时更改视图模型时,我的MainWindowView(它的UserControl绑定到ContentView属性)没有更改在属性的setter中提升NotifyPropertyChanged
。
public partial class MainWindowViewModel : BaseViewModel
{
public UserControl ContentView { set; get; }
public MainWindowViewModel()
{
ContentView = new SearchView();
}
}