Я пытаюсь создать окно WPF, содержащее вкладки. Можно ли обновить элементы управления вкладки (например, текстовые поля, представление данных), когда выбрана другая вкладка, поэтому, когда я возвращаюсь на предыдущую вкладку, я нехотите увидеть какие-либо данные, а элементы управления обновлены.Я хочу добиться этого с помощью MVVM wpf
При кодировании приложения я заполняю сетку данных данными таблицы и у меня есть два текстовых поля, через которые я могу выбрать диапазон дат.Я не знаю, как обновить текстовое поле и сетку данных, чтобы перейти в исходное состояние при переключении вкладок.
Я попытался обновить данные с помощью window.Interactivity dll.Но ни одно событие не было инициировано.
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<i:InvokeCommandAction Command="{Binding ontabclick}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
ViewModel.cs:
ontabclick = new RelayCommand(o => onclick());
public void onclick()
{ MessageBox.Show("Working correctly"); }
Window.xaml
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
<TabItem Header="AuditInformation">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<i:InvokeCommandAction Command="{Binding ontabclick}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<UniformGrid>
<DockPanel>
<StackPanel Margin="1,0,0,0" Height="55" >
<DatePicker Focusable = "False" SelectedDate="{Binding FromDate}" Margin="80,10,30,-10" Height="25" HorizontalAlignment="Left" Name="Fromdatedatepicker" VerticalAlignment="Top" Width="115" >
<DatePicker.Resources>
<Style TargetType="{x:Type DatePickerTextBox}">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox x:Name="PART_TextBox"
Text="{Binding Path=SelectedDate, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}, StringFormat={}{0:yyyy/MM/dd}}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DatePicker.Resources>
</DatePicker>
<Label Width="69" Height="23.277" HorizontalAlignment="Left" Margin="1,-10,30,0" VerticalAlignment="Top" Content="From Date"/>
<DatePicker Focusable = "False" SelectedDate="{Binding Todate}" Margin="265,-27,30,-10" Height="25" HorizontalAlignment="Left" Name="Todatedatepicker" VerticalAlignment="Top" Width="115" >
<DatePicker.Resources>
<Style TargetType="{x:Type DatePickerTextBox}">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox x:Name="PART_TextBox1"
Text="{Binding Path=SelectedDate, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}, StringFormat={}{0:yyyy/MM/dd}}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DatePicker.Resources>
</DatePicker>
<Label Width="60" Height="23.277" HorizontalAlignment="Left" Margin="200,-23,30,0" VerticalAlignment="Top" Content="To Date"/>
<Button Command="{Binding dataSearch}" Margin="300,-20,30,0" Width="60" Height="23.277" Content="Search"></Button>
</StackPanel>
</DockPanel>
<DockPanel Margin="0,0,0,-139">
<StackPanel Height="350">
<DataGrid x:Name="datagrid" AutoGenerateColumns="True" CanUserAddRows="False"
Height="350" Width="365" Margin="5" HorizontalAlignment="Left">
<DataGrid.Style>
<Style TargetType="DataGrid">
<Setter Property="ItemsSource" Value="{Binding ModelClasstab}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Isdatementioned}" Value="True">
<Setter Property="ItemsSource" Value="{Binding ModelClasstabwithdate }"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Style>
</DataGrid>
</StackPanel>
</DockPanel>
</UniformGrid>
</TabItem>