Я разрабатываю свое первое приложение с использованием MVVM, и я застрял с моей командной кнопкой.Команда кнопки WPF, не стреляющая в ICommand в viewmodel
На мой взгляд, у меня есть:
<Button x:Name="btSave" Command="{Binding AddContactCommand}" Content="Save" HorizontalAlignment="Left" Margin="183,186,0,0" VerticalAlignment="Top" Width="75"/>
В коде позади у меня есть:
public partial class ContactView : Window
{
private ContactViewModel contactVM;
public ContactView()
{
InitializeComponent();
contactVM = new ContactViewModel();
this.DataContext = contactVM;
}
}
В модели представления у меня есть:
public ICommand AddContactCommand { get; private set; }
void AddContact()
{
ContactData ContactData = new ContactData();
bSaved = ContactData.SaveContact("Theresa","Theresa","Theresa","Theresa");
}
AddContact()
в представлении модель никогда не срабатывает.
Что я делаю неправильно?
Какой метод 'AddContact()' имеет отношение к 'AddContactCommand'? Где вы создаете свойство ('AddContactCommand = new Something()')? См. [Этот ответ] (http://stackoverflow.com/a/1468830/1997232) для примера «ICommand». – Sinatr
Просто потому, что вы * имя * метод 'AddContact' и команда' AddContactCommand' не означает, что они каким-либо образом связаны с вашей программой, насколько это возможно. В вашем коде отсутствует что-то вроде этого: 'AddContactCommand = new ClassThatImplementsICommand (AddContact)' Если у вас нет реализации ICommand, google для 'RelayCommand', это простая реализация, которая охватывает основы. –
Спасибо, что указал мне в правильном направлении. Я решил это сейчас, используя RelayCommand как suugested. –