虽然我同意 HighCore 如果你想这样做,但这是你需要做的。下面是一个完整的例子。
第一步 - 创建视图模型(您似乎已经完成了)
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>
第三步 - 在你的窗口中设置数据上下文 - 无论是哪一个,然后你就可以使用数据了。
<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 特定的东西。希望这会有所帮助。