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

时间:2013-03-29 10:19:33

标签: c# xaml resources global-variables application-resource

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

这就是我的所作所为。

在页面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中做到这一点?

1 个答案:

答案 0 :(得分:0)

问题是缺少d:namespace