标签: combobox

ComboBox内容的自动宽度

有没有人知道将ComboBox内容的宽度设置为自动调整大小的方法

我不是指ComboBox自己,只是开放的内容.

.net c# combobox winforms

45
推荐指数
3
解决办法
6万
查看次数

如何将组合框设置为只读或用户无法在组合框中写入只能选择给定的项目?

我在设置组合属性时遇到问题,只有用户可以从给定项目中选择值,但我无法在组合框中写入.

我怎么能在C#中这样做?

c# combobox

44
推荐指数
6
解决办法
15万
查看次数

C#WPF IsEnabled使用多个绑定?

我有一个描述GUI部分的WPF xaml文件,我希望特定控件的启用/禁用依赖于其他两个控件.代码看起来像这样:

<ComboBox Name="MyComboBox"
          IsEnabled="{Binding ElementName=SomeCheckBox, Path=IsChecked}"/>
Run Code Online (Sandbox Code Playgroud)

但我希望它依赖于另一个复选框,所以类似于:

<ComboBox Name="MyComboBox"
          IsEnabled="{Binding ElementName=SomeCheckBox&AnotherCheckbox, Path=IsChecked}"/>
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?我情不自禁地觉得我错过了一些明显的东西或者错误的方式?

c# wpf binding combobox isenabled

43
推荐指数
3
解决办法
4万
查看次数

为什么我不能在ComboBox中选择空值?

在WPF中,似乎无法从ComboBox中选择(使用鼠标)"null"值.编辑为了澄清,这是.NET 3.5 SP1.

这是一些显示我的意思的代码.首先,C#声明:

public class Foo
{
    public Bar Bar { get; set; }
}

public class Bar 
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

接下来,我的Window1 XAML:

<Window x:Class="WpfApplication1.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 x:Name="bars" 
                  DisplayMemberPath="Name" 
                  Height="21" 
                  SelectedItem="{Binding Bar}"
                  />
    </StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

最后,我的Window1类:

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

        bars.ItemsSource = new ObservableCollection<Bar> 
        {
            null, 
            new Bar { Name = "Hello" }, 
            new Bar { Name = "World" …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf combobox

42
推荐指数
5
解决办法
3万
查看次数

如何从Combobox中设置选定的值?

我在c#windows窗体中使用了combobox.我将项目列表绑定如下:

var employmentStatus = new BindingList<KeyValuePair<string, string>>();

employmentStatus.Add(new KeyValuePair<string, string>("0", "[Select Status]"));
employmentStatus.Add(new KeyValuePair<string, string>("1", "Contract"));
employmentStatus.Add(new KeyValuePair<string, string>("2", "Part Time"));
employmentStatus.Add(new KeyValuePair<string, string>("3", "Permanent"));
employmentStatus.Add(new KeyValuePair<string, string>("4", "Probation"));

employmentStatus.Add(new KeyValuePair<string, string>("5", "Other"));
cmbEmployeeStatus.DataSource = employmentStatus;
cmbEmployeeStatus.ValueMember = "Key";
cmbEmployeeStatus.DisplayMember = "Value";
cmbEmployeeStatus.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)

我将所选值保存在数据库eg.1或2.现在我想从数据库项设置选定的值,如:

cmbEmployeeStatus.SelectedValue =employee.employmentstatus;     
Run Code Online (Sandbox Code Playgroud)

但是没有选择有价值的组合框.我怎样才能做到这一点?

.net c# data-binding combobox winforms

41
推荐指数
3
解决办法
22万
查看次数

WPF MVVM ComboBox SelectedItem或SelectedValue不起作用

更新

经过一番调查.似乎问题是SelectedValue/SelectedItem在Item源完成加载之前发生.如果我坐在断点并等待几秒钟,它会按预期工作.不知道我将如何解决这个问题.

结束更新

我有一个应用程序在WPF中使用MVVM和ComboBox.下面是ViewModel示例.我遇到的问题是当我们离开页面并迁移回ComboBox时没有选择当前选择的值.

查看模型

public class MyViewModel
{
     private MyObject _selectedObject;
     private Collection<Object2> _objects;
     private IModel _model;

     public MyViewModel(IModel model)
    {
         _model = model;
         _objects = _model.GetObjects();
    }

    public Collection<MyObject> Objects
    {
         get
         {
              return _objects;
         }
         private set
         {
              _objects = value;
         }
     }

     public MyObject SelectedObject
     {
          get
          {
              return _selectedObject;
          }
          set
          {
               _selectedObject = value;
          }
      }
 }
Run Code Online (Sandbox Code Playgroud)

为了这个例子,我们可以说MyObject有两个属性(Text和Id).我的ComboBox XAML看起来像这样.

XAML

<ComboBox Name="MyComboBox" Height="23"  Width="auto" 
    SelectedItem="{Binding Path=SelectedObject,Mode=TwoWay}" 
    ItemsSource="{Binding Objects}"
    DisplayMemberPath="Text"
    SelectedValuePath="Id">
Run Code Online (Sandbox Code Playgroud)

无论我在回到页面时如何配置此对象并重新组装对象,ComboBox都不会选择该值.该对象通过属性中的get返回正确的对象.

我不确定这是否只是ComboBox和MVVM模式工作方式的问题.我们正在进行的文本框绑定正常工作.

wpf combobox mvvm

40
推荐指数
5
解决办法
11万
查看次数

在WPF中公开绑定的内部Control属性

[编辑]:我想出了如何自己做这件事.我发布了我的解决方案,希望能在几天谷歌上搜索其他人.如果您是WPF大师,请查看我的解决方案,让我知道是否有更好/更优雅/更有效的方法来做到这一点.特别是,我有兴趣知道我不知道的...这个解决方案怎么会让我不知所措?问题实际上归结为暴露内部控制属性.

问题:我正在创建一些代码,以便在WPF中为XML文件自动生成数据绑定GUI.我有一个xsd文件,可以帮助我确定节点类型等.简单的键/值元素很容易.

当我解析这个元素时:

<Key>value</Key>
Run Code Online (Sandbox Code Playgroud)

我可以创建一个新的'KeyValueControl'并设置DataContext为这个元素.KeyValue被定义为UserControl,并且只有一些简单的绑定.它适用于任何简单的XElement.

此控件中的XAML如下所示:

<Label Content={Binding Path=Name} /> 
<TextBox Text={Binding Path=Value} />
Run Code Online (Sandbox Code Playgroud)

结果是一行包含带有元素名称的标签和一个带有我可以编辑的值的文本框.

现在,有时我需要显示查找值而不是实际值.我想创建一个类似于上面KeyValueControl的'KeyValueComboBox',但是能够指定(基于文件中的信息)ItemsSource,Display和Value路径.'Name'和'Value'绑定与KeyValueControl相同.

我不知道标准用户控件是否可以处理这个问题,或者我是否需要从Selector继承.

控件中的XAML看起来像这样:

<Label Content={Binding Path=Name} /> 
<ComboBox SelectedValue={Binding Path=Value}
          ItemsSource={Binding [BOUND TO THE ItemsSource PROPERTY OF THIS CUSTOM CONTROL]
          DisplayMemberPath={Binding [BOUND TO THE DisplayMemberPath OF THIS CUSTOM CONTROL]
          SelectedValuePath={Binding [BOUND TO THE SelectedValuePath OF THIS CUSTOM CONTROL]/>
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我会做这样的事情(假设这个节点是'Thing'并且需要显示Things列表,以便用户可以选择ID:

var myBoundComboBox = new KeyValueComboBox();
myBoundComboBox.ItemsSource = getThingsList();
myBoundComboBox.DisplayMemberPath = "ThingName";
myBoundComboBox.ValueMemberPath = "ThingID"
myBoundComboBox.DataContext = thisXElement;
...
myStackPanel.Children.Add(myBoundComboBox)
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

1)我应该从Control或Selector继承我的KeyValueComboBox吗?

2)如果我应该从Control继承,我如何公开内部组合框的ItemsSource,DisplayMemberPath和ValueMemberPath以进行绑定?

3)如果我需要继承Selector,有人可以提供一个小例子来说明我如何开始使用它吗?再说一次,我是WPF的新手,所以如果这是我需要走的路,一个好的,简单的例子真的会有所帮助.

wpf binding user-controls combobox

40
推荐指数
1
解决办法
2万
查看次数

jQueryUI自动完成ComboBox太长

我的jQuery UI AutoComplete ComboBox在右侧没有滚动条,并且非常不可思议,如下所示.我想将这个列表限制在一个合理的长度 - 有关如何实现这一点的任何想法?谢谢!

jQuery UI AutoComplete ComboBox

combobox jquery-ui autocomplete

40
推荐指数
3
解决办法
3万
查看次数

下拉框和组合框之间有什么区别吗?

下拉框和组合框[HTML]之间有什么区别吗?

实际上重点是,每次我说的话都是这样的:" 组合框有一些问题 ",我的大四学生说:" 这不是一个下拉的组合框 ",:)

html user-controls combobox drop-down-menu

39
推荐指数
2
解决办法
8万
查看次数

如何使用标签和值创建Winforms组合框?

我主要是一个ASP.NET开发人员,但我正在研究一个WinForms应用程序,并注意到ASP.NET组合框(html select)和WinForms之间存在很大差异.我发现(可能不正确)WinForm的组合框只有一个"标签",而ASP.NET允许你指定一个"标签"和一个"值".

我希望使用WinForms组合框(或其他类似的控件)与标签和值(Foobar/42329).这可能吗?我试图寻找答案,但没有提出太多.如果没有办法实现这一点,那么如何设计一个WinForm组合框来表示具有相关数据库ID的城市呢?

  • 多伦多/ 2324
  • 蒙特利尔/ 64547
  • 温哥华/ 1213

.net combobox winforms

37
推荐指数
4
解决办法
5万
查看次数