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;
}