0

我有一个要求,我有一个通过使用 GridViewColumn 绑定到集合的列表视图。但我有一个要求,根据列中的某些选定值,我修改列表视图的项目模板。

这意味着列表视图仅由一行组成,应修改项目模板。有没有可能。

<Window x:Class="ListViewSample.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:ListViewSample"
    Title="MainWindow" Height="350" Width="525"
    >
<Window.Resources>
    <local:ListViewConverter x:Key="listViewConverter"/>
    <DataTemplate x:Key="doubleRowListViewItem">
        <Grid>                
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <TextBlock Background="YellowGreen" Grid.Row="0" Grid.Column="0"/>
            <TextBlock Background="GreenYellow" Grid.Row="1" Grid.Column="0" />                
        </Grid>
    </DataTemplate>
</Window.Resources>
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <ListView Grid.Row="1" ItemsSource="{Binding Persons}" >            
        <ListView.View>
            <GridView>                    
                <GridViewColumn Header="Country" DisplayMemberBinding="{Binding Country}"/>
                <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
            </GridView>
        </ListView.View>
    </ListView>
</Grid>
</Window>

此处一旦将国家/地区的值设置为特定条目,项目模板应相应更改。项目模板应设置为上面声明的数据模板。

有什么办法可以做到这一点。

谢谢。桑迪普

4

1 回答 1

0

不确定您在寻找什么,但如果您想要一个视觉动态 Row,您可以删除DisplayMemberBinding并使用CellTemplate。您可以像使用任何其他模板一样通过触发器修改该 CellTemplate 或多个 CellTemplate。

于 2013-06-03T09:22:59.733 回答