ListViewItem提示工具 WPF

7
我需要的是,当鼠标悬停在listviewitem上时,能够在工具提示中显示每个数据的所有内容。
以下是我的视图模型的一部分。
...
...
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.CommandWpf;
...
...

private ObservableCollection<Articulo> _articulos;

private Articulo _articuloSeleccionado;

        public ObservableCollection<Articulo> Articulos
        {
            get { return _articulos; }
            set
            {
                _articulos = value; 
                RaisePropertyChanged();
            }
        }

        public Articulo ArticuloSeleccionado
        {
            get { return _articuloSeleccionado; }
            set
            {
                _articuloSeleccionado = value;
                RaisePropertyChanged();
            }
        }

我的.xalm
            <ListView Name="lvResultado"
                      ItemsSource="{Binding Articulos}"
                      SelectedItem="{Binding ArticuloSeleccionado}">
                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Setter Property="HorizontalContentAlignment" Value="Center"/>
                    </Style>
                </ListView.ItemContainerStyle>
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Código de barras" Width="200" DisplayMemberBinding="{Binding CodigoDeBarras}"/>
                        <GridViewColumn Header="Descripción" Width="250" DisplayMemberBinding="{Binding Descripcion}"/>
                    </GridView>
                </ListView.View>
            </ListView>

感谢您的帮助。我尝试了几种方法,但没有好的结果。

您在网格视图中有多列。您想为整行还是每个单元格分别查看工具提示? - dymanoid
你好!ListView 只显示了 Article 类的两个属性。我想添加一个工具提示来显示整行的所有属性。 - avechuche
1个回答

18
你可以定义一个 ItemContainerStyle,来设置你的工具提示模板和内容。
以下是一个示例,在这里我定义了一个 UniformGrid 以在一列中显示多个文本行。你可以自由地设置你想要的工具提示。但你仍然需要告诉视图哪些数据属性需要在工具提示中显示。
<ListView ItemsSource="{Binding Articulos}">
  <ListView.ItemContainerStyle>
    <Style TargetType="{x:Type ListViewItem}">
      <Setter Property="ToolTip">
        <Setter.Value>
          <UniformGrid Columns="1">
            <TextBlock Text="{Binding CodigoDeBarras}"/>
            <TextBlock Text="{Binding Descripcion}"/>
            <TextBlock Text="{Binding AnyOtherProperty}"/>
          </UniformGrid>
        </Setter.Value>
      </Setter>
    </Style>
  </ListView.ItemContainerStyle>
</ListView>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接