有没有办法 select copy/paste 的 COMBOBOX 的内容?

Is there a way to select the contents of COMBOBOX for copy/paste?

问题: 所以我的应用程序有 2 个选项,加载和更新。当我想更新的时候,我也想复制内容(比如Name/UID),但是我不能。在更新过程中,我设置了“isEnabled=False”(通过将其绑定到一个变量),它不会让我复制内容。

我尝试执行“isReadOnly=True”(删除“isEnabled”属性),它允许我复制,但 DropDown 仍在工作,这将允许我或任何人更改某些值, (如性别、UID)在更新期间更改。

目标:我希望能够复制组合框的内容但不让任何人更改其值。

有没有办法禁用下拉功能,这样“isReadOnly=True”就可以了。

如果 isReadOnly=True 正在执行您想要的操作,那么我将只使用一个转换器来禁用下拉菜单。

MainWindow.xaml中:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApp1">
    <Window.Resources>
        <local:CBMaxDropDownHeightConverter x:Key="CBMaxDropDownHeightConverter" />
    </Window.Resources>
    <Grid>
        <ComboBox MaxDropDownHeight="{Binding RelativeSource={RelativeSource Self}, Path=IsReadOnly, Converter={StaticResource CBMaxDropDownHeightConverter}}" />
    </Grid>
</Window>

然后在CBMaxDropDownHeightConverter.cs

using System;
using System.Windows.Data;

namespace WpfApp1
{
    public class CBMaxDropDownHeightConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (System.Convert.ToBoolean(value) == true)
            {
                return "0";
            }

            return "Auto";
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotSupportedException();
        }
    }
}