Как загрузить пользовательские компоненты в панель по нажатию кнопок? - PullRequest
0 голосов
/ 01 июля 2019

У меня есть две панели, которые добавляются в пользовательский элемент управления (SalesLandingPage).

В столбце 2 у меня есть пользовательский элемент управления SaleOrderCommandOptions, в котором есть панель стека с 2 кнопками (заказ и оформление заказа)

При нажатии на заказ мне нужно отобразить orderUserControl в столбце 1 SalesLandingPage ...и, аналогично, при нажатии кнопки checkout мне нужно показать checkoutUserControl в столбце 1 SalesLandingPage.

Кто-нибудь может подсказать мне, как этого добиться?

Ниже приведен код -

MainWindow.xaml

<telerik:RadTabbedWindow x:Class="WPFInterplayPOS.MainWindow" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
        xmlns:userControls="clr-namespace:WPFInterplayPOS.UserInterface.Sales"
        xmlns:local="clr-namespace:WPFInterplayPOS" WindowState="Maximized" Height="513.424" Width="844.321" 
        AddButtonVisibility="Hidden" HideMinimizeButton="True" HideMaximizeButton="True" ResizeMode="NoResize">

    <telerik:RadTabItem Header="Sales" CloseButtonVisibility="Hidden" HorizontalContentAlignment="Right">
        <userControls:SalesLandingPage></userControls:SalesLandingPage>
    </telerik:RadTabItem>

</telerik:RadTabbedWindow>

SalesLandingPage.xaml

<UserControl x:Class="WPFInterplayPOS.UserInterface.Sales.SalesLandingPage"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:WPFInterplayPOS.UserInterface.Sales"
         xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Navigation"
         xmlns:telerikPresentation="http://schemas.telerik.com/2008/xaml/presentation"
         mc:Ignorable="d" 
         d:DesignHeight="450" d:DesignWidth="800">
<Grid>
    <!-- Grid layout column definitions -->
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="8*"></ColumnDefinition>
        <ColumnDefinition Width="3*"></ColumnDefinition>
        <ColumnDefinition Width="1*"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <!-- RadNavigationView in column 0 -->
    <telerik:RadNavigationView x:Name="navigationView" Grid.Column="0" DisplayMode="Compact" AutoChangeDisplayMode="False" PaneToggleButtonVisibility="Hidden">
        <telerik:RadNavigationView.Items>
            <telerik:RadNavigationViewItem>
                <telerik:RadNavigationViewItem.Icon>
                    <telerikPresentation:RadGlyph Glyph="&#xe303;" FontSize="16"/>
                </telerik:RadNavigationViewItem.Icon>
            </telerik:RadNavigationViewItem>
            <telerik:RadNavigationViewItem>
                <telerik:RadNavigationViewItem.Icon>
                    <telerikPresentation:RadGlyph Glyph="&#xe301;" FontSize="16"/>
                </telerik:RadNavigationViewItem.Icon>
            </telerik:RadNavigationViewItem>
            <telerik:RadNavigationViewItem>
                <telerik:RadNavigationViewItem.Icon>
                    <telerikPresentation:RadGlyph Glyph="&#xe901;" FontSize="16"/>
                </telerik:RadNavigationViewItem.Icon>
            </telerik:RadNavigationViewItem>
        </telerik:RadNavigationView.Items>
        <telerik:RadNavigationView.Content>
            <TextBlock Text="Content" Foreground="Black" Margin="5"/>
        </telerik:RadNavigationView.Content>
    </telerik:RadNavigationView>

    <!-- column 1 -->
    <StackPanel x:Name="SaleOrderCommandView" Grid.Column="1">
        <!-- Display relevant user control here based on button click in SaleOrderCommandOptions user control -->
    </StackPanel>

    <!-- SaleOrderCommandOptions in column 2 -->
    <local:SaleOrderCommandOptions Grid.Column="2"> 
</local:SaleOrderCommandOptions>
</Grid>
</UserControl>

SaleOrderCommandOptions.xaml

<UserControl x:Class="WPFInterplayPOS.UserInterface.Sales.SaleOrderCommandOptions"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:telerikPresentation="http://schemas.telerik.com/2008/xaml/presentation"
         xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls"
         xmlns:local="clr-namespace:WPFInterplayPOS.UserInterface.Sales"
         mc:Ignorable="d" 
         d:DesignHeight="450" d:DesignWidth="800">

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Telerik.Windows.Controls;component/Themes/FontResources.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>    
</UserControl.Resources>

<StackPanel Grid.Column="2" Background="{telerikPresentation:MaterialResource ResourceKey=PrimaryHoverBrush}">
    <telerik:RadButton>Order</telerik:RadButton>
    <telerik:RadButton>Checkout</telerik:RadButton>
</StackPanel>
</UserControl>
...