在我的App.xaml
文件中,我有:
<Application.Resources>
<LocalViewModels:SharedSettingsViewModel x:Key="SharedSettingsViewModel"/>
<LocalViewModels:ApplicationSpecificSettingsViewModel x:Key="ApplicationSpecificSettingsViewModel" />
</Application.Resources>
如何在其他窗口中使用这些资源?
例如,如果我在同一窗口中拥有这些资源,我会这样做:
DataContext="{Binding Source={StaticResource ApplicationSpecificSettingsViewModel}}"
DataContext="{Binding Source={StaticResource ApplicationSpecificSettingsViewModel}}"
答案 0 :(得分:1)
虽然我同意HighCore如果你想这样做,这就是你需要做的。以下是一个完整的例子。
第一步 - 创建一个viewmodel(你已经完成了它)
namespace resourcesTest
{
public class SharedViewModel
{
public string TestMessage
{
get { return "This is a test"; }
}
}
}
第二步 - 将其作为资源添加到app.xaml
<Application x:Class="resourcesTest.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:resourcesTest"
StartupUri="MainWindow.xaml">
<Application.Resources>
<local:SharedViewModel x:Key="SharedViewModel"></local:SharedViewModel>
</Application.Resources>
</Application>
第三步 - 在你的窗口中设置datacontext - 无论它是哪一个,然后你就可以使用这些数据。
<Window x:Class="resourcesTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid DataContext="{Binding Source={StaticResource SharedViewModel}}">
<Label Content="{Binding TestMessage}"></Label>
</Grid>
</Window>
除非我遗漏了你想要做的事情。同样,我不会这样做 - 我只会将应用程序资源用于样式和UI特定的事情。希望这会有所帮助。