我正在開發WPF
MVVM
應用程序以顯示一些Windows System Informations
並練習一些MVVM
。Windows版本在設計中顯示真實值,但在運行程序時顯示不同的值
不知何故設計Environment.OSVersion.ToString()
工作正常,但調試後沒有。我試過調試和發佈模式,但沒有任何改變。
「的Microsoft Windows NT 10.0.15063.0」 被顯示在設計時間:
「的Microsoft Windows NT 6.2.9200.0」 在當我運行該軟件顯示:
我用戶控件
<UserControl.DataContext>
<viewModels:WindowsVersionViewModel />
</UserControl.DataContext>
<Grid>
<TextBox IsReadOnly="True"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Text="{Binding Path=Version, Mode=OneWay}" />
</Grid>
我的視圖模型
public class WindowsVersionViewModel : ObservableObject {
public string Version { get; } = Environment.OSVersion.ToString();
}
如何在運行後得到正確的版本以及爲什麼會發生這種情況?
此調用不建議從文檔中找到。 「從Windows 8開始,OSVersion屬性將爲所有Windows平臺返回相同的主要和次要版本號,因此,我們不建議您檢索此屬性的值以確定操作系統版本。」 – Steve