<Application x:Class="Demo5.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="MainWindow.xaml"> <!--StartupUri="MainWindow.xaml" 启动页--> <Application.Resources> </Application.Resources> </Application>
<Window x:Class="Demo5.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <XmlDataProvider x:Key="xmlData" XPath="/countries/country"> <!-- 示例数据 --> <x:XData> <countries xmlns=""> <country name="中国"> <province name="陕西"> <city>西安</city> <city>宝鸡</city> </province> <province name="山西"> <city>太原</city> <city>大同</city> </province> <province name="内蒙古自治区"> <city>呼和浩特</city> <city>包头</city> <city>集宁</city> </province> <province name="河北"> <city>石家庄</city> <city>保定</city> </province> </country> <country name="美国"> <province name="加利福尼亚"> <city>洛杉矶</city> <city>圣迭戈</city> </province> <province name="福罗里达"> <city>杰克逊维尔</city> <city>迈阿密</city> </province> </country> </countries> </x:XData> </XmlDataProvider> <Style TargetType="HeaderedContentControl"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="HeaderedContentControl"> <DockPanel> <Border DockPanel.Dock="Top" Margin="3" CornerRadius="3" Background="DarkRed"> <TextBlock Text="{TemplateBinding Header}" HorizontalAlignment="Center" Foreground="White"/> </Border> <ContentPresenter ContentSource="Content" ContentTemplate="{TemplateBinding ContentTemplate}"/> </DockPanel> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style TargetType="ListBoxItem"> <Setter Property="SnapsToDevicePixels" Value="true"/> <Setter Property="OverridesDefaultStyle" Value="true"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListBoxItem"> <Border Name="Border" Padding="2" SnapsToDevicePixels="true"> <ContentPresenter /> </Border> <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="true"> <Setter TargetName="Border" Property="Background" Value="YellowGreen"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </Window.Resources> <Grid DataContext="{Binding Source={StaticResource xmlData}}"> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <HeaderedContentControl Header="国家"> <ListBox ItemsSource="{Binding}" DisplayMemberPath="@name" IsSynchronizedWithCurrentItem="True"/> </HeaderedContentControl> <HeaderedContentControl Header="省/州" Grid.Column="1"> <ListBox Name="lbxProvince" ItemsSource="{Binding XPath=province}" DisplayMemberPath="@name" IsSynchronizedWithCurrentItem="True"/> </HeaderedContentControl> <HeaderedContentControl Header="城市" Grid.Column="2"> <ListBox DataContext="{Binding ElementName=lbxProvince, Path=SelectedItem}" ItemsSource="{Binding XPath=city}" IsSynchronizedWithCurrentItem="True"/> </HeaderedContentControl> </Grid> </Window>
运行效果如下:
博客内容主要用于日常学习记录,内容比较随意,如有问题,还需谅解!!!