将 class 声明为 window 资源时的空引用

null reference when declaring a class as a window resource

我无法从后面的 MainWindow 代码访问 class。

我写了这个class:

namespace WpfApp1.Management
{
    public class BookManagement : INotifyPropertyChanged
    { ...

在主窗口中引用:

<Window
    x:Class="WpfApp1.MainWindow"
    x:Name="mainWindow"
    ...
    xmlns:mangmt="clr-namespace:WpfApp1.Management"

作者:

<Window.Resources>
    <mangmt:BookManagement x:Key="bookManagement" />
</Window.Resources>

事实是我需要从 MainWindow.cs 访问 bookManagement,我试过这个:

BookManagement bm= Application.Current.Resources["bookManagement"] as BookManagement;
bm.SelectedTab = "summary";

但是我在运行时遇到空引用异常。

谢谢。

它是您 MainWindow 资源的一部分,而不是应用程序的一部分:

<Window.Resources>
    <mangmt:BookManagement x:Key="bookManagement" />
</Window.Resources>

改为使用此检索:

Application.Current.MainWindow.Resources["bookManagement"]