ВсеКак добавить обработчик событий в MVVM в Windows Phone 8?
У меня проблема. Теперь я использую среду MVVM для разработки приложения для Windows Phone 8. Я просто хочу, чтобы при нажатии на кнопку, а затем начинают записывать что-то, когда отпустите кнопку остановки записи, я использовал InvokeCommandAction связать команду в ViewModel, это код, как следовать
Xaml:
<Button x:Name="BtnRecord" Height="50" Width="180" Background="#D43637" Content="Record" Margin="20,0,0,0" Style="{StaticResource BasicButtonStyle}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<i:InvokeCommandAction Command="{Binding StartRecordCommand}"/>
</i:EventTrigger>
<i:EventTrigger EventName="MouseLeftButtonUp">
<i:InvokeCommandAction Command="{Binding EndRecordCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
ModelView:
public ICommand StartRecordCommand
{
get
{
return new DelegateCommand(StartRecord);
}
}
public ICommand EndRecordCommand
{
get
{
return new DelegateCommand(EndRecord);
}
}
private void StartRecord(object parameter){}
private void EndRecord(object parameter){}
Когда я отладки приложения, я обнаружил, что не сгореть ни события, ни MouseLeftButtonDown MouseLeftButtonUp, поэтому я зарегистрировать обработчик два события следующим образом:
BtnRecord.AddHandler(UIElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler(Button_MouseLeftButtonDown), true);
BtnRecord.AddHandler(UIElement.MouseLeftButtonUpEvent, new MouseButtonEventHandler(Button_MouseLeftButtonUp), true);
private void Button_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
}
private void Button_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
}
ОК, продолжайте идти, но следующая задача приходит, это не огонь ICommand в ViewModel это называется Button_MouseLeftButtonDown, о, Боже, я с ума
Каждый знает, как назвать ICommand в ViewModel? Или другой способ его реализации?
Большое спасибо, это работает для меня –
Это не стиль MVVM ... – Liel
Как это будет выглядеть в стиле MVVM? – venerik