Ich entwickle eine WPF
MVVM
Anwendung zeigen einige Windows System Informations
und üben einige MVVM
.Windows-Version zeigt wahren Wert im Design, aber zeigt anderen Wert, wenn ich Programm
Irgendwie im Design Environment.OSVersion.ToString()
funktioniert richtig, aber nach dem Debuggen tut es nicht. Ich habe versucht, Debug und Release-Modi, aber nichts ist geändert.
"Microsoft Windows NT 10.0.15063.0" wurde in Design-Zeit gezeigt:
"Microsoft Windows NT 6.2.9200.0" wurde gezeigt, wenn ich die Software ausführen:
Meine Usercontrol
<UserControl.DataContext>
<viewModels:WindowsVersionViewModel />
</UserControl.DataContext>
<Grid>
<TextBox IsReadOnly="True"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Text="{Binding Path=Version, Mode=OneWay}" />
</Grid>
Meine Viewmodel
public class WindowsVersionViewModel : ObservableObject {
public string Version { get; } = Environment.OSVersion.ToString();
}
Wie kann ich die korrekte Version nach dem Lauf bekommen und warum dies passiert?
Dieser Aufruf wird nicht aus der Dokumentation empfohlen. "Ab Windows 8 gibt die OSVersion-Eigenschaft die gleichen Haupt- und Nebennummern für alle Windows-Plattformen zurück. Daher empfehlen wir nicht, den Wert dieser Eigenschaft abzurufen, um die Betriebssystemversion zu ermitteln." – Steve