Tôi không hiểu cách tôi có thể tạo lệnh để tạo hình chữ nhật có thể nhấp MVVM. Đây là mã của tôi:Làm cách nào tôi có thể truy cập ViewModel của mình từ mã phía sau
<Rectangle x:Name="Color01" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="10,29,0,0" Stroke="Black" VerticalAlignment="Top" Width="100" MouseDown="Color_MouseDown" />
<Rectangle x:Name="Color02" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="115,29,0,0" Stroke="Black" VerticalAlignment="Top" Width="100"/>
<Rectangle x:Name="Color03" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="220,29,0,0" Stroke="Black" VerticalAlignment="Top" Width="100"/>
<Rectangle x:Name="Color04" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="325,29,0,0" Stroke="Black" VerticalAlignment="Top" Width="100"/>
Trên hình chữ nhật đầu tiên của bạn, bạn có thể thấy tôi đã tạo mã đằng sau sự kiện. Trước tiên, tôi không biết cách truy cập ViewModel của mình từ mã phía sau. Hai nó không thực sự là MVVM.
public partial class MainWindow : Window
{
/// <summary>
/// Initializes a new instance of the MainWindow class.
/// </summary>
public MainWindow()
{
InitializeComponent();
Closing += (s, e) => ViewModelLocator.Cleanup();
}
private void Color_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
// So what ???
}
}
Tôi chỉ cần có thể thay đổi giá trị boolean đơn giản được lưu trữ trong danh sách được lưu trữ trong chế độ xem của tôiMô hình khi ai đó nhấp vào hình chữ nhật của tôi. Tại sao nó quá phức tạp để làm với MVVM?
'var rect = sender làm Rectangle' và sau đó thực hiện bất kỳ điều gì bạn muốn, mặc dù thiết kế này rất tồi và bạn _should_ bằng cách sử dụng ràng buộc dữ liệu và liên kết màu với trường thay vì thực hiện việc này. Tìm hiểu và sử dụng các trừu tượng bạn được đưa ra thay vì chống lại chúng. –
Và tôi nhận được hình chữ nhật ... sau đó những gì tiếp theo? Bắt người gửi không phải là vấn đề. Sau đó tôi cần cập nhật giá trị boolean của tôi được lưu trữ trong một danh sách được lưu trữ trong viewModel của tôi. –