У меня есть следующий код для переключения содержимого ContentControl
в WPF. Я передаю ему значение пути страницы управления пользователями, но новая страница не загружается.
MainWindow.xaml.cs
public void SwitchPage(string pagePath)
{
MainContent.Content = pagePath;
}
MainWindow.xaml
MainWindow
содержит следующую ContentControl
декларацию:
<ContentControl Name="MainContent" Content="{Binding ElementName=DemoItemsListBox, Path=SelectedItem.Content}" />
Ниже приводится кнопка, которая запускает событие для передачи URL-адреса (пользовательского пути управления) в функцию:
MenuLinks.xaml
<DataTemplate DataType="{x:Type domain:MenuLink}">
<Button Name="ImageButton" ToolTip="Wiki Article" ToolTipService.InitialShowDelay="0"
Style="{DynamicResource MaterialDesignFlatButton}"
Click="Button_Click"
CommandParameter="{Binding Url}">
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon x:Name="PackIcon" Kind="BookOpenVariant" />
<TextBlock Margin="8 0 0 0" Style="{StaticResource MaterialDesignBody1TextBlock}"
Text="{Binding Label, Mode=OneWay}" />
</StackPanel>
</Button>
</DataTemplate>
Кнопка вызывает функцию Button_Click
в файле с выделенным кодом MenuLinks.xaml.cs следующим образом, которая вызывает функцию SwitchPage
в MainWindow
:
MenuLinks.xaml.cs
private void Button_Click(object sender, RoutedEventArgs e)
{
Button _myButton = (Button)sender;
string value = _myButton.CommandParameter.ToString();
MainWindow window = new MainWindow();
window.SwitchPage(value);
}