У меня есть несколько текстовых полей в форме, которые, когда фокус потерян, я хотел бы вызвать хранимую процедуру установщика для сохранения данных, а затем в моей функции обратного вызова вызвать хранимый метод получателя, который обновит сводку стоимости работыв моей форме.Я использую Mvvm light, и когда я пытаюсь связать EventToCommand с LostFocus EventTrigger, моя команда запускается дважды.
Я понимаю, что это происходит из-за пузырьков событий, но я не уверен, как это сделать.мой метод на самом деле срабатывает только один раз.Вот мой xaml:
<TextBox x:Name="txtMiles" Grid.Row="1" Width="80" Grid.Column="2" Margin="2" Text="{Binding Miles, Mode=TwoWay}" HorizontalAlignment="Center" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="LostFocus">
<cmd:EventToCommand Command="{Binding UpdateJobCost}" CommandParameter="{Binding Text, ElementName=txtMiles}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
И мой ViewModel:
public RelayCommand<string> UpdateJobCost { get; set; }
public WorkOrderControlViewModel(TSMVVM.Services.IWorkOrderService workOrderService)
{
WorkOrderService = workOrderService;
RegisterCommands();
LoadData();
}
private void RegisterCommands()
{
UpdateJobCost = new RelayCommand<string>((value) => updateJC(value));
}
private void updateJC(string value)
{
//Handle Setter service call here
}
Большое спасибо,
Скотт