无法从代码访问XAML类实例

时间:2014-02-01 14:20:33

标签: c# wpf xaml

我创建了一个类,它将成为我的应用程序的DataContext,并通过XAML实例化它:

<Window x:Class="MyApp.UI.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:myDataModel="clr-namespace:MyApp.MyDataModel"
    Title="MainWindow">
<Window.Resources>
    <myDataModel:MyDataClass x:Name="the_DataModel" x:Key="a_DataModel"/>
</Window.Resources>

我想在我的Window的构造函数中对此对象执行操作:

public MainWindow()
{
    InitializeComponent();

    the_DataModel.LoadFromFile(); // One of these *should* work!
    a_DataModel.LoadFromFile();
}

然而,似乎名称(the_DataModela_DataModel)都不是Window类的成员。当我输入this.并使用自动完成时,我找不到任何类似于我在XAML中创建的对象的内容。

如何在XAML中创建类的实例,并在代码中访问它?

1 个答案:

答案 0 :(得分:2)

由于您已将其作为资源添加到窗口资源中,因此您可以通过使用资源键建立索引来 get it from Resource collection

MyDataClass dataModel = (MyDataClass)Resources["a_DataModel"];
dataModel.LoadFromFile();