Всем привет, пишу приложение в рамках (MVVM) в котором будет несколько кнопок по нажатию на каждую из которых, в отведенную область (допустим во frame, или как-нибудь иначе) должна загружаться новая view, но VM ДОЛЖНА ОСТАВАТЬСЯ ПРЕЖНЕЙ, т.е мне нужно одни и те же данные, (которые хранятся в модели) отображать по разному, как это реализовать?
Раз у вас одна и та же VM, то ваш вопрос реально о смене View, а значит, решать проблему нужно на уровне View.
Положим представления одно на одно в грид, и будем переключать их видимость в зависимости от нажатия кнопок. Чтобы одна кнопка отжималась при нажатии другой, используем стандартный трюк с ToggleButton
.
Пишем:
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Тест" Height="400" Width="600">
<Window.Resources>
<BooleanToVisibilityConverter x:Key="B2V"/>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Margin="10">
<Border BorderBrush="Red" BorderThickness="4" CornerRadius="15"
Visibility="{Binding IsChecked, ElementName=RedButton,
Converter={StaticResource B2V}}">
<TextBlock Text="{Binding}" Foreground="Red" FontSize="24"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<Border BorderBrush="Blue" BorderThickness="4" CornerRadius="15"
Visibility="{Binding IsChecked, ElementName=BlueButton,
Converter={StaticResource B2V}}">
<TextBlock Text="{Binding}" Foreground="Blue" FontSize="24"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"
Grid.Row="1" Margin="0,0,0,10">
<RadioButton Style="{StaticResource {x:Type ToggleButton}}" x:Name="RedButton"
Margin="5,0" Width="100" IsChecked="True" Content="Красная"/>
<RadioButton Style="{StaticResource {x:Type ToggleButton}}" x:Name="BlueButton"
Margin="5,0" Width="100" Content="Синяя"/>
</StackPanel>
</Grid>
</Window>
Результат:
Делаю чат (клиент и сервер), при старте сервера пытаюсь зашифровать соединение через сертификат
Данный запрос наполняет DataGridМожно ли как то из этого же запроса наполнить combobox значениями колонки Manager_History