我有一个 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 中做到这一点?