У меня есть флажок. который будет по умолчанию true. на этом флажке у меня есть событие Не проверено и проверено. если я изменю значение с ViewModel, мне нужно прекратить запускать это событие, я просто ищу лучший способ сделать это
UI
<dxe:ToggleSwitch IsChecked="{Binding FollowFIFO}" HorizontalAlignment="Center"
IsThreeState="False" FontSize="24" FontWeight="Bold" >
<dxmvvm:Interaction.Behaviors>
<dxmvvm:EventToCommand EventName="Unchecked" command="{Binding PickingMethodologyChanged}"/>
<dxmvvm:EventToCommand EventName="Checked" Command="{Binding PickingMethodologyChanged}"/>
</dxmvvm:Interaction.Behaviors>
</dxe:ToggleSwitch>
Опора в ВМ
private bool followFIFO = true;
public bool FollowFIFO
{
get { return followFIFO; }
set
{
followFIFO = value;
OnPropertyChanged(new PropertyChangedEventArgs("FollowFIFO"));
}
}
CTOR
PickingMethodologyChanged = new DelegateCommand(ChangePickingMethodology);
Метод
private void ChangePickingMethodology()
{
RequestClose(null, null);
}
Что мне нужно сделать
каждый раз, когда изменяется метод PickingMethodology, мне нужно закрыть текущий интерфейс и открыть тот же интерфейс с этим значением FollowFIFO
Повторный вызов того же интерфейса
bool FollowFIFO = true;
PickingMaterialsViewModel pickingMaterialsViewModel = new PickingMaterialsViewModel();
do
{
PickingMaterialsView pickingMaterialsView = new PickingMaterialsView();
FollowFIFO = pickingMaterialsViewModel.FollowFIFO;
pickingMaterialsViewModel = new PickingMaterialsViewModel();
pickingMaterialsViewModel.FollowFIFO = FollowFIFO;
EventHandler handle = delegate { pickingMaterialsView.Close(); };
pickingMaterialsViewModel.RequestClose += handle;
pickingMaterialsViewModel.InIt(ot, WarehouseCommon.Instance.Selectedwarehouse);
pickingMaterialsView.DataContext = pickingMaterialsViewModel;
pickingMaterialsView.ShowDialog();
}
while (pickingMaterialsViewModel.IsCanceled == false);
поэтому, когда я изменяю pickingMaterialsViewModel.FollowFIFO, одно и то же событие запускается снова и снова