我正在使用 WPF 在 C# 中创建桌面应用程序,但我被我的菜单卡住了。我有一个左侧面板菜单可以在功能之间切换。我创建了一个带有 2 个视图的视图模型,这些视图需要显示在我的主窗口中。如果我点击监控,内容视图从主页切换到监控,但是当我在监控时,如果我尝试回到主页,它不起作用,我不明白为什么。在我的项目文件夹下面([abc] = 文件夹;- abc = 文件):[PROJECT] [assets] - Home.png - Stats.png [ViewModels] - MainWindowViewModel.cs [Views] - Home.xaml - Home.cs - Stats.xaml - Stats.cs - MainWindow.xaml - MainWindow.cs - App.xaml - App.cs - App.config下面是我代码的重要部分:主窗口.xaml<Window.Resources> <DataTemplate x:Key="HomeViewTemplate" DataType="{x:Type viewmodels:MainWindowViewModel}"> <views:Home DataContext="{Binding}" /> </DataTemplate> <DataTemplate x:Key="StatsViewTemplate" DataType="{x:Type viewmodels:MainWindowViewModel}"> <views:Stats DataContext="{Binding}" /> </DataTemplate></Window.Resources><Grid Grid.Row="0" MouseLeftButtonDown="OpenHome"> <Grid.ColumnDefinitions> <ColumnDefinition Width="70" /> <ColumnDefinition Width="1*" /> </Grid.ColumnDefinitions> <Image Source="/assets/home.png" Height="32" Width="32" /> <Label Content="Home" Grid.Column="1" Foreground="White" FontSize="12" VerticalAlignment="Center" Padding="0,5,5,5" /></Grid><Grid Grid.Row="1" MouseLeftButtonDown="OpenStats"> <Grid.ColumnDefinitions> <ColumnDefinition Width="70" /> <ColumnDefinition Width="1*" /> </Grid.ColumnDefinitions> <Image Source="/assets/stats.png" Height="32" Width="32" /> <Label Content="Monitoring" Grid.Column="1" Foreground="White" FontSize="12" VerticalAlignment="Center" Padding="0,5,5,5" /></Grid>
1 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
Route通过INotifyPropertyChanged接口实现发送有关属性更改的通知:
public class MainWindowViewModel : INotifyPropertyChanged
{
public string _Route;
public string Route
{
get { return _Route; }
set { _Route = value; OnPropertyChanged("Route"); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public MainWindowViewModel(){}
}
此类通知将激活 DataTrigger,后者又将更改 ContentTemplate
- 1 回答
- 0 关注
- 169 浏览
添加回答
举报
0/150
提交
取消