WPF ListBox,ListView添加ToolTip显示当前选择项

     

今天碰到一个需求,使用ListBox显示多文字。因为每个选项文字较长,ListBoxItem的宽度有限,这时候为了体现界面友好,增加ToolTip是一个好的选择:代码如下:

MainWindow.xaml:


    
        
            
                
                
                
                
            
        
        
            
        
        
        

    
    
        
            
            
        

        
            
                
                    
                        
                            
                                
                            
                    
                    
                
            
        
        
            
                
                    
                    
                    
                
            
        
    
    


vm:

using GalaSoft.MvvmLight;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _20200116_MVVM.ViewModel
{
    public class PopupVM: ViewModelBase
    {

        private ObservableCollection _testModel;
        // 模拟数据绑定
  
        public ObservableCollection TestModel
        {
            get { return _testModel; }
            set
            {
                if (!Equals(_testModel, value))
                {
                    _testModel = value;
                    RaisePropertyChanged("TestModel");
                }
            }
        }

        public PopupVM()
        {
            TestModel = new ObservableCollection();
            TestModel.Add(new Model() { Name = "“12.35平米!84万!”市南区一套二手房成交信息连日来席卷岛城市民朋友圈。按网传信息,这套房子每平方米售价超过6.8万元。", ClassDisplayText = "6月28日,半岛记者实地走访了解到,这处二手房建成时间约为上世纪20年代,至今已近百年。" });
            TestModel.Add(new Model() { Name = "由于房源照片显示的房屋状态太过“老破小”,引发不少网友吐槽“真像个茅草房,风一吹,屋顶都能刮飞了”“这小平房真是寸砖寸金,可当古董收藏了”。", ClassDisplayText = "促成这套小房成交的中介工作人员向记者证实了网传成交价格的真实性,称房源为商品住宅,手续齐全" });       

        }
    }
    public class Model : ObservableObject
    {
        private string _name;
        private string _classDisplayText;

        public string Name
        {
            get { return _name; }
            set
            {
                if (!Equals(_name, value))
                {
                    _name = value;
                    RaisePropertyChanged("Name");
                }
            }
        }

        public string ClassDisplayText
        {
            get { return _classDisplayText; }
            set
            {
                if (!Equals(_classDisplayText, value))
                {
                    _classDisplayText = value;
                    RaisePropertyChanged("ClassDisplayText");
                }
            }
        }
    }   
}

窗口的左边是一个ListBox,右边是一个ListView,都是带有ToolTip的,看一下运行效果:

ListBox:

WPF ListBox,ListView添加ToolTip显示当前选择项_第1张图片

ListView:

WPF ListBox,ListView添加ToolTip显示当前选择项_第2张图片

代码工程路径:https://download.csdn.net/download/chulijun3107/12561687

 

你可能感兴趣的:(WPF,ListBox,windows)