ListViewItem工具提示WPF

时间:2015-02-12 07:05:15

标签: c# wpf xaml listviewitem

我需要的是当每个listviewitem的鼠标显示工具提示中的每个数据时。

这是我的viewmdel的一部分

...
...
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>

感谢您的帮助。我尝试了几件事但没有好结果。

1 个答案:

答案 0 :(得分:8)

您可以定义一个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>