gpt4 book ai didi

wpf - 如何在组合框中将项目设置为选中

转载 作者:行者123 更新时间:2023-12-04 01:43:26 25 4
gpt4 key购买 nike

似乎没有人找到一种方法来将组合框设置为使用 SelectedItem="Binding Property"选中。

是在组合框项目源中的 ViewModel 对象中使用 IsSelected 属性的解决方案吗?

最佳答案

不知道为什么不能在没有看到代码的情况下将数据绑定(bind)到 ComboBox 上的 SelectedItem。下面向您展示了如何使用 CollectionView 执行此操作,该 CollectionView 具有内置的组合框支持的当前项目管理。 CollectionView 有一个 CurrentItem 获取属性,您可以使用它来获取当前选定的内容。

XAML:

<Window x:Class="CBTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel>
<ComboBox
ItemsSource="{Binding Path=Names}"
IsSynchronizedWithCurrentItem="True">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<TextBlock Text="{Binding Path=Names.CurrentItem}" />
</StackPanel>
</Window>

后面的代码:
using System.Collections.Generic;
using System.Windows;
using System.Windows.Data;

namespace CBTest
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();

DataContext = new VM();
}
}

public class VM
{
public VM()
{
_namesModel.Add("Bob");
_namesModel.Add("Joe");
_namesModel.Add("Sally");
_namesModel.Add("Lucy");

Names = new CollectionView(_namesModel);

// Set currently selected item to Sally.

Names.MoveCurrentTo("Sally");
}

public CollectionView Names { get; private set; }

private List<string> _namesModel = new List<string>();
}
}

关于wpf - 如何在组合框中将项目设置为选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2860129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com