OK, tôi có xu hướng tránh sử dụng lệnh bởi vì họ luôn cố gắng gây nhầm lẫn với tôi, nhưng tôi đang trong một dự án mới và đang cố gắng kiến trúc nó một cách chính xác mà không có mã phía sau lượt xem. Về cơ bản tất cả những gì tôi đang cố gắng làm ngay bây giờ là dây lên một nút kích hoạt một lệnh thực hiện một số điều trên mô hình khung nhìn của tôi, và bằng cách nào đó một cái gì đó đơn giản như vậy vẫn gây rắc rối cho tôi. Tôi nghĩ tôi gần nhưng không thể đến đó được. Đây là những gì tôi có ngay bây giờ.Lệnh gọi phương thức từ viewmodel
<Window.Resources>
<RoutedUICommand x:Key="GetMusic" />
</Window.Resources>
<Window.DataContext>
<core:ViewMain />
</Window.DataContext>
<Window.CommandBindings>
<CommandBinding Command="{StaticResource GetMusic}" Executed="GetMusicExecuted"/>
</Window.CommandBindings>
Và mô hình xem là khá nhiều không có gì ngay bây giờ
public class ViewMain
{
public MusicCollection Music { get; set; }
private void GetMusicExecuted(object sender, ExecutedRoutedEventArgs e)
{
//Logic
}
}
Bây giờ những gì tôi đang cố gắng làm là dây lên lệnh này tôi thiết lập trong bindings lệnh của tôi để chỉ cần gọi phương pháp thực hiện của tôi trong mô hình chế độ xem của tôi, tuy nhiên, nó cố gắng tìm phương thức đó trong chính chế độ xem. Có cách nào tôi có thể hướng nó đến phương pháp trong mô hình xem của tôi thay vào đó, hoặc một cách tốt hơn để thiết lập điều này để thực hiện điều tương tự? Hy vọng để giữ nó đơn giản lúc đầu vì vậy tôi không thổi tâm trí của tôi quá sớm.
bạn cần thiết lập các ràng buộc hoặc thông qua XAML hoặc mã phía sau – uowzd01
Bạn đã xem xét sử dụng DelegateCommands trong các khung MVVM chuẩn của bạn như Prism? Tôi nghĩ rằng nó làm cho lệnh dễ dàng hơn nhiều vì lệnh của bạn nằm trong VM và bạn có thể ràng buộc nó mà không cần phải định nghĩa CommandBindings. –