3

私は Windows ストア アプリを開発しており、次のような XAML コードがあります。

<Popup x:Name="Panel3" IsOpen="False" Grid.ColumnSpan="18" Grid.Column="13" Grid.Row="4" Grid.RowSpan="31">
    <StackPanel>
        <Rectangle  Width="765" Height="10" />
        <ListView x:Name="Person" Grid.ColumnSpan="18" Grid.Column="13" HorizontalAlignment="Left" Height="643" Grid.Row="4" Grid.RowSpan="31" VerticalAlignment="Top" Width="765" >
            <ListView.Background>
                <SolidColorBrush Color="#FF665920" Opacity="0.85"/>
            </ListView.Background>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding name}"/>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackPanel>
</Popup>

リストビューでの項目選択を無効にしたい。したがって、表示専用であり、ユーザーはリストビュー内で何も選択/クリックできません。どうすればそれを実現できますか? よろしく...

PS リストビュー行に IsItemClickEnabled="False" を追加しました:

<ListView x:Name="Person" Grid.ColumnSpan="18" Grid.Column="13" HorizontalAlignment="Left" Height="643" Grid.Row="4" Grid.RowSpan="31" VerticalAlignment="Top" Width="765" IsItemClickEnabled="False">

しかし、それは何も変更せず、まだクリック可能です.

4

2 に答える 2

11

の項目選択を無効にするには、 SelectionModeプロパティをに設定する必要があります。NoneListView

<ListView x:Name="Person" SelectionMode="None" ... />

さらにIsItemClickEnabled="False"、ニーズによっては が必要になる場合もあります。

于 2013-07-07T19:37:18.043 に答える
0

nemesv が彼の回答で述べたように、必要に応じて、およびListViewItemの設定とともに、の視覚的な状態を変更する必要があることがわかりました。SelectionMode="None"IsItemClickEnabled="False"

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                    <Grid>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <!-- here we are clearing the state behavior, 
                                     thus disabling the clickability of the ListViewItem -->
                                <VisualState x:Name="Normal" />
                                <VisualState x:Name="PointerOver" />
                                <VisualState x:Name="Pressed" />
                             /VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Grid>
                            <ContentPresenter x:Name="ListViewItemContent" />
                        </Grid>
                   </Grid>
                </ControlTemplate>
            </Setter.Value>
       </Setter>
    </Style>
</ListView.ItemContainerStyle>
于 2017-11-22T01:50:48.453 に答える