У меня типичный сценарий MVVM: у меня ItemsControl
привязан к ObservableCollection
StepsViewModels.Я определяю DataTemplate так, чтобы StepViewModels отображались как StepViews.То же самое происходит в StepView: у меня есть ItemsControl
для ObservableCollection
ParameterViewModels с DataTemplate, чтобы отобразить их как ParameterViews.
Моя проблема: я должен обновить ItemsControl
для отображения элементовдобавлены и удалены элементы.Я могу обновить ItemsControl
с помощью StepViews, потому что у меня есть доступ к нему и я могу вызвать ItemsControl.Items.Refresh ().Но как я могу получить доступ к StepViews, чтобы я мог вызвать метод Refresh?ItemsControl Items - это StepViewModels ...
Вот код:
<UserControl x:Class="mylib.EditorView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:mylib">
<UserControl.Resources>
<DataTemplate DataType="{x:Type my:StepViewModel}">
<my:StepView HorizontalAlignment="Stretch"/>
</DataTemplate>
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="27"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="1" VerticalAlignment="Top">
<StackPanel Orientation="Vertical">
<TextBlock Name="lblHelpRefresh" Margin="0 7 0 7" Visibility="{Binding HelpVisible}"
VerticalAlignment="Center" HorizontalAlignment="Center"
FontSize="9pt" Foreground="#949494"
Text="Please click refresh to reload this list"/>
<ItemsControl Name="stkStepContent"
ItemsSource="{Binding Steps}"/>
</StackPanel>
</ScrollViewer>
</Grid>
</UserControl>
Как получить доступ к элементам управления StepView, которые визуализируют элементы stkStepContent?