我对MVVM不太熟悉,所以我不确定应该从哪里开始。如果有解决方案,但到目前为止,我所做的是以下操作(在后面使用代码):
我基本上有一个切换按钮,如果选中它,它将在注册表中写入内容;如果不选中它,则将从注册表中删除相同内容。我只是添加了Checked和Unchecked事件。
这里的问题是我想保存ToggleButton的状态(无论它是选中还是未选中)。通过比较注册表,然后将isChecked设置为true或false,我可以在表单加载时执行此操作,但问题是,如果将isChecked设置为true,它将触发“ Checked”事件,并且基本上在注册表上写相同的内容再次。
private void MyWindow_Loaded(object sender, RoutedEventArgs e)
{
RegistryKey rk = Registry.CurrentUser.OpenSubKey
("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (rk.GetValue("Z") == null)
{
Toggle.IsChecked = false;
}
else
{
Toggle.IsChecked = true;
}
}
private void Toggle_Checked(object sender, RoutedEventArgs e)
{
RegistryKey rkRegistryKey = Registry.CurrentUser.OpenSubKey
("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkRegistryKey.SetValue("Z", System.Reflection.Assembly.GetExecutingAssembly().Location);
}
private void Toggle_UnChecked(object sender, RoutedEventArgs e)
{
RegistryKey rkRegistryKey = Registry.CurrentUser.OpenSubKey
("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkRegistryKey.DeleteValue("Z", false);
}
慕婉清6462132
相关分类