如何在xaml中创建一个全局对象?



我有一个wpf导航应用程序。我有一个对象,我想从不同的页面访问。目前,该对象只能从创建它的页面中获得。

这是我所做的。

In page A.xaml

我在页面中这样定义

<UserControl.Resources>
    <local:SerialComm x:Key="SerialCommDataSource" d:IsDataSource="True" />
</UserControl.Resources>

以上方法有效,只是作用域仅限于页面。我希望能够从任何其他页面访问对象。

我像这样使用页面中的对象

<Grid Style="{StaticResource ContentRoot}" DataContext="{Binding Source={StaticResource SerialCommDataSource}}" >
    <TextBox x:Name="tbbaudRate" Height="23" TextWrapping="Wrap" MinWidth="200" Text="{Binding SerialPort.BaudRate}" />
</Grid>

我想把资源放在App.xaml中,这样我就可以在任何地方访问它。

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Blah;component/Assets/Blah.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
    <local:SerialComm x:Key="SerialCommDataSource" d:IsDataSource="True" /> <--Error here
</Application.Resources>

如何在xaml中创建一个全局对象?对象必须能够在任何地方进行编辑,并且编辑后的值可以更新。我读到一个人不能在代码后面创建对象并在xaml的任何地方访问它。在xaml中怎么做呢?

问题是缺少d:命名空间

相关内容

  • 没有找到相关文章

最新更新