2017-02-01 3 views
0

Я разрабатываю свое первое приложение с использованием 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() в представлении модель никогда не срабатывает.

Что я делаю неправильно?

+3

Какой метод 'AddContact()' имеет отношение к 'AddContactCommand'? Где вы создаете свойство ('AddContactCommand = new Something()')? См. [Этот ответ] (http://stackoverflow.com/a/1468830/1997232) для примера «ICommand». – Sinatr

+1

Просто потому, что вы * имя * метод 'AddContact' и команда' AddContactCommand' не означает, что они каким-либо образом связаны с вашей программой, насколько это возможно. В вашем коде отсутствует что-то вроде этого: 'AddContactCommand = new ClassThatImplementsICommand (AddContact)' Если у вас нет реализации ICommand, google для 'RelayCommand', это простая реализация, которая охватывает основы. –

+0

Спасибо, что указал мне в правильном направлении. Я решил это сейчас, используя RelayCommand как suugested. –

ответ

0

Проверьте свой DataContext, поскольку я предполагаю, что это проблема.

Если ViewModel в коде позади в Constructor поместить следующее:

DataContext = this; 

В противном случае, если это другой класс, который вы должны сделать то же самое, но сделать:

DataContext = new MyViewModel(); 

По крайней мере, Я предполагаю, что это ваша проблема из того, что вы опубликовали.

 Смежные вопросы

  • Нет связанных вопросов^_^