如何在MainWindowViewModel中引用MainWindow.xaml中的Resource?

时间:2022-05-23 04:06:25

问题描述:在MainWindow.xaml的Window.Resource中定义了一个资源,如下:

<xctk:Wizard x:Key="_wizard" FinishButtonClosesWindow="True">

......

</xctk:Wizard>

现在要在MainWindowViewModel中引用"_wizard",怎么办呢?

也许有人会说,把MainWindow实例化,

MainWindow mainWindow=new MainWindow();

mainWindow.Resources["_wizard"]。。;

这样做可以引用,但代价太大,因为这样每次都要对MainWindow实例化,每次产生不同的对象,虽然资源是不会改变的。那该怎么办呢?

可以这样做:把自己定义的资源写到app.xaml中去,然后调用,如下:

<Application.Resources>
        <ResourceDictionary>

<xctk:Wizard x:Key="_wizard">

........

</xctk:Wizard x:Key="_wizard">

</ResourceDictionary>

</Application.Resources>

在 MainWindowViewModel中如何引用呢?

Application.Current.Resources["_wizard"]...;

这样就实现了对资源的引用,注意app.xaml的使用。