我是一個做小WPF MVVM程序:鏈接ViewModel類查看
- 具有與標籤一個主窗口(說「你好」)和一個按鈕打開另一個窗口(我沒有打開的窗口部分在後面的代碼中)。
- 這會打開另一個帶有2個單選按鈕(紅色和藍色)和一個取消按鈕(我在後面的代碼中關閉了功能)的窗口。
- 如果按下紅色單選按鈕,MainWindow上的標籤應該變成紅色,同樣按下藍色單選按鈕。
有人可以幫助我嗎?我對WPF很陌生,對MVVM方法學來說也是全新的。我張貼我的ViewModel代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using System.Windows.Media;
using PocMVVM.Views;
namespace PocMVVM.ViewModel
{
public class ColorChangeViewModel : ICommand
{
//ColorChoiceView colorSelect = new ColorChoiceView();
//MainWindow mw = new MainWindow();
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
return true;
//throw new NotImplementedException();
}
public void Execute(object parameter)
{
//throw new NotImplementedException();
ColorChoiceView colorSelect = new ColorChoiceView();
MainWindow mw = new MainWindow();
if((bool)parameter==colorSelect.RedButton.IsChecked.Equals(true))
{
mw.label.Foreground = Brushes.Red;
mw.UpdateLayout();
mw.ShowDialog();
}
else if((bool)parameter == colorSelect.BlueButton.IsChecked.Equals(true))
{
mw.label.Foreground = Brushes.Blue;
mw.UpdateLayout();
mw.ShowDialog();
}
}
}
}
有人可以幫我嗎?
非常感謝!
P.S.我知道人們可能會問是否需要兩個窗口,但必須這樣。我被告知它必須是這樣的,所以別無他法。
我在哪裏查看代碼?你爲什麼在ViewModel中引用你的MainWindow? –
這不是唯一訪問標籤的方法嗎? –
不,它不是訪問的方式。如果你正在使用MVVM使用數據綁定,命令等。我建議你在編寫代碼之前閱讀更多關於MVVM模式和WPF的信息 –