WPF的ListBox控件当中IsSynchronizedWithCurrentItem说明

7 篇文章 2 订阅

    WPF的ListBox控件继承自一个叫Selector的类,Selector是个抽象(abstract)类,意味着Selector是个无法实例化的类,而ListBox继承自Selector类,也就意味着ListBox实现了好多Selector类当中的成员或方法。

    今天简单介绍下ListBox的属性IsSynchronizedWithCurrentItem,其实这个属性是继承自Selector的。

    IsSynchronizedWithCurrentItem如果为true,意味着用户在界面上用鼠标选择一个项(每次选择会实时地改变SelectedItem属性,这个属性其实也是来自Selector类)会立即更新(同步)到对象集合(ListBox的Items属性)的当前项(Items对象的CurrentItem属性),反之亦成立。说这么多废话,还是画个图吧:


    

如果IsSynchronizedWithCurrentItem的值是false,则两者不会相互影响。

下面举个例子说明下吧:

XMAL代码:

    <StackPanel>
        <ListBox Margin="5" Name="firstListBox" DisplayMemberPath="FirstName" IsSynchronizedWithCurrentItem="True"></ListBox>
        <ListBox Margin="5" Name="secondListBox" DisplayMemberPath="FirstName" IsSynchronizedWithCurrentItem="True"></ListBox>
    </StackPanel>

c#后台代码:

    public class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public Person(string f,string l)
        {
            FirstName = f;
            LastName = l;
        }
    }

    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public static ObservableCollection<Person> persons { get; set; } = new ObservableCollection<Person>();
        public MainWindow()
        {
            persons.Add(new Person("MeiLin","Xu"));
            persons.Add(new Person("JieShi", "Jiang"));
            InitializeComponent();
            firstListBox.ItemsSource = persons;
            secondListBox.ItemsSource = persons;
        }
    }

我们可以看到下面的效果:


仔细看上图,在任何一个ListBox中用鼠标选择一项,在另一个ListBox中的选择也会跟着变。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF.NET 6.0中的ListBox控件是一种用于显示列表数据的控件。它可以在界面上显示多个项,并允许用户选择其中的一个或多个项。引用\[1\]中列举了一些常见的WPF控件,其中包括ListBox。 在VC6中创建一个MFC AppWizard (exe)项目,并选择dialog based模板后,可以在dialog中插入一个ListBox控件。可以通过修改ListBox的属性来改变其样式,比如将Styles中的Owner draw改为Fixed或Variable。\[2\] 在XAML中,可以使用附加属性来控制ListBox的行为。例如,可以使用Trigger来判断附加属性PasswordLength是否等于0,如果是,则显示水印。具体的代码可以参考引用\[3\]中的示例。 总结起来,WPF.NET 6.0中的ListBox控件是一种用于显示列表数据的控件,可以通过修改属性来改变其样式,并且可以使用附加属性来控制其行为。 #### 引用[.reference_title] - *1* *3* [WPF 基础控件之 PasswordBox 样式](https://blog.csdn.net/zls365365/article/details/124642528)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [改变ListBox中文本的颜色以及其他](https://blog.csdn.net/wu5318/article/details/11381417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值