В моем приложении SL4 я пытаюсь вызвать команду с помощью кнопки. Код команды - это стандартный материал, который я без проблем использовал в другом месте, но я не могу заставить команду вызываться при нажатии кнопки.
Это сводило меня с ума, и в итоге я создал тестовую страницу, на которой не было ничего, кроме кнопки. Для контекста страницы задано значение моей ViewModel, а для ViewModel установлено свойство ICommand. DataContext работает, так как я могу привязать текстовое поле к строковому свойству во ViewModel. Это так просто, я могу включить все соответствующие вещи здесь:
Из XAML:
xmlns:models="clr-namespace:x3.ViewModels"
...
<UserControl.DataContext>
<models:TestViewModel/>
</UserControl.DataContext>
<Button x:Name="TestButton" Command="{Binding TestCommand}" Content="AAAAGHH" />
Из ViewModel:
public class TestViewModel:INotifyPropertyChanged
{
ICommand _testCommand;
public ICommand TestCommand
{
get
{
_testCommand = new DelegateCommand(
commandParameter =>
{
var testButton = commandParameter as Button;
},
(commandParameter) => {return true;});
return _testCommand;
}
}
}
DelegateCommand является частью Telerik.Windows.Controls. Если я поставлю точку останова на
_testCommand = новый DelegateCommand
это происходит, когда страница загружается, но после этого я могу нажимать кнопку, пока моя мышь не изнашивается и команда никогда не вызывается.
Ради моего психического здоровья я был бы признателен за любую предлагаемую помощь.
Спасибо
Mick