WPF SurfaceListBox SelectionChanged事件分析

图片预览:

xmal代码区:

<s:SurfaceWindow x:Class="Qv2._0.SurfaceWindow1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="http://schemas.microsoft.com/surface/2008"
    Title="Qv2._0"
    >
    <Grid Background="Transparent">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <s:SurfaceListBox Name="ContentSelector" Grid.Column="0"
                          SelectionChanged="OnSelectionChanged" Width="200" >       
            <s:SurfaceListBoxItem Content="item1" >
                <s:SurfaceListBoxItem.Tag>
                    <Grid>
                        <Button Width="200" Height="200">OK1</Button>
                        <Button VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="200" Height="200"
                                Click="Button_Click">返回</Button>
                    </Grid>
                </s:SurfaceListBoxItem.Tag>
            </s:SurfaceListBoxItem>

            <s:SurfaceListBoxItem Content="item2">
                <s:SurfaceListBoxItem.Tag>
                    <Grid>
                        <Button Width="200" Height="200">OK2</Button>
                        <Button VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="200" Height="200"
                                Click="Button_Click2">返回</Button>
                    </Grid>
                </s:SurfaceListBoxItem.Tag>
            </s:SurfaceListBoxItem>

            <s:SurfaceListBoxItem Content="item3">
                <s:SurfaceListBoxItem.Tag>
                    <Grid>
                        <Button Width="200" Height="200">OK3</Button>
                        <Button VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="200" Height="200"
                                Click="Button_Click3">返回</Button>
                    </Grid>
                </s:SurfaceListBoxItem.Tag>
            </s:SurfaceListBoxItem>
        </s:SurfaceListBox>          

    <Grid   Grid.Column="1" Background="Transparent" Name="ContentArea" Margin="7"/>
    </Grid>
</s:SurfaceWindow>

cs:代码片段

    private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            SurfaceListBoxItem selectedItem = (SurfaceListBoxItem)ContentSelector.SelectedItem;
            Grid content = selectedItem.Tag as Grid;
            if (content != null)
            {

                ContentArea.Children.Clear();
                ContentArea.Children.Add(content);
                ContentSelector.Visibility = Visibility.Hidden;

            }
        }

    private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {

    //初始化
            SurfaceListBoxItem selectedItem = (SurfaceListBoxItem)ContentSelector.SelectedItem;
            Grid content = selectedItem.Tag as Grid;
            if (content != null)
            {

                ContentArea.Children.Clear();
                ContentArea.Children.Add(content);
                ContentSelector.Visibility = Visibility.Hidden;

            }
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ContentSelector.Visibility = Visibility.Visible;
          
        }
        private void Button_Click2(object sender, RoutedEventArgs e)
        {
            ContentSelector.Visibility = Visibility.Visible;
           
        }
        private void Button_Click3(object sender, RoutedEventArgs e)
        {
            ContentSelector.Visibility = Visibility.Visible;         
        }

原文地址:https://www.cnblogs.com/DeepBlues/p/2932383.html