将类声明为窗口资源时为null引用

时间:2018-11-19 18:33:18

标签: c# wpf xaml mainwindow

从后面的MainWindow代码中,我无法访问类。

我写了这个课:

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

在MainWindow中引用的

<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";

但是我在运行时得到了一个空引用异常。

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

使用它来取回它:

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