标签: combobox

WPF将组合框绑定到业务对象的数组/列表

我正在构建一个WPF应用程序,我的UI由组合框和大约十几个其他UI控件组成.我有一个业务对象类,包含十几个属性并实现INotifyPropertyChanged.

这是我的业务对象的片段:

public class MyBusinessObject : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private void OnPropertyChanged(PropertyChangedEventArgs e)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, e);
        }
    }

    private int _idNumber;
    public int IdNumber
    {
        get { return _idNumber; }
        set
        {
            if (_idNumber == value)
            {
                return;
            }

            _idNumber = value;
            OnPropertyChanged(new PropertyChangedEventArgs("IdNumber"));
        }
    }

    private string _name;
    public string Name
    {
        get { return _name; }
        set
        {
            if (_name == value)
            {
                return;
            }

            _name = value;
            OnPropertyChanged(new PropertyChangedEventArgs("Name")); …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf combobox

0
推荐指数
1
解决办法
3047
查看次数

Combobox不显示数据项

我一直在尝试Data在我的mfc项目的DialogWindow中为我的组合框添加项目,在设计时通过Data为这个组合框的属性设置由分号分隔的字符串.

但它只是在运行时显示空组合框.我也尝试在DialogBox AddString()的情况OnInitDialog()下手动使用这个组合框的方法.但那也没有用.

尝试再次创建一个演示项目,当我添加组合框并将值a;b放在Data它的属性中时,它就会显示出来.但在我的项目中尝试了同样的事情,它仍然显示新组合框中的空列表!试图比较两个项目的代码,如头文件和初始化等.发现两者都是相同的.除了我的项目中的按钮和我的自定义c ++代码的一些事件声明之外,其余代码与新创建的演示项目的代码相同!

为什么在我的项目中这个组合框显示一个空的项目列表?:(

编辑:

刚刚注意到这些项目已经在列表中.但是下拉的高度很小,从而阻止了实际的物品出现!:(

试图增加组合框的大小,但我在属性窗口中找不到任何属性,拖动组合框的角落也不会增加高度!:(

mfc combobox visual-c++

0
推荐指数
1
解决办法
2265
查看次数

如何删除ComboBox中的所有值?

        rs = statement.executeQuery("select * from user");

        while (rs.next()) {
            String username = rs.getString("staffname");
            options1.add(username);    // ObservableList<String> options1 = FXCollections.observableArrayList();
        }

        cb.setItems(options1);   // cb is ComboBox object
        cb.setPromptText("Select Your Account");
        cb.setPrefSize(280, 30);

        Button bt = new Button("Sign In");
        bt.setFont(Font.font("Calibri", FontWeight.NORMAL, 17));
        bt.setStyle(" -fx-base: #333333;");
        bt.setTextFill(Color.WHITE);

        bt.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent e) {
                try {
                    setCenter(userSignin());

                } catch (ClassNotFoundException | SQLException ex) {
                    Logger.getLogger(FrontPage.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

这是我从数据库中读取一些值并在ComboBox中显示它的代码.现在,我需要在按下Button时删除ComboBox中的所有值.我想一键删除所有内容.我该怎么做 ?

combobox javafx javafx-2

0
推荐指数
1
解决办法
5623
查看次数

Java FXML ComboBox值java.lang.ClassCastException:无法将java.lang.String强制转换为

我需要一个组合框,用于显示客户名称,并在选择其一项时提供customerId。我意识到的组合框以正确的方式工作,但是当它失去焦点时,或者按Enter键时,出现以下错误:

Exception in thread "JavaFX Application Thread" java.lang.ClassCastException: java.lang.String cannot be cast to kinema.classi.NomeCodice
    at kinema.ASediController$1.changed(ASediController.java:104)
    at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:347)
    at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
    at javafx.beans.property.ReadOnlyObjectWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyObjectWrapper.java:176)
    at javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:142)
    at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
    at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:145)
    at javafx.scene.control.SelectionModel.setSelectedItem(SelectionModel.java:102)
    at javafx.scene.control.ComboBox$2.changed(ComboBox.java:221)
    at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:347)
    at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
    at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:105)
    at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
    at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:145)
    at javafx.scene.control.ComboBoxBase.setValue(ComboBoxBase.java:167)
    at com.sun.javafx.scene.control.skin.ComboBoxListViewSkin.setTextFromTextFieldIntoComboBoxValue(ComboBoxListViewSkin.java:512)
    at com.sun.javafx.scene.control.skin.ComboBoxListViewSkin.access$200(ComboBoxListViewSkin.java:57)
    at com.sun.javafx.scene.control.skin.ComboBoxListViewSkin$3.handle(ComboBoxListViewSkin.java:162)
    at com.sun.javafx.scene.control.skin.ComboBoxListViewSkin$3.handle(ComboBoxListViewSkin.java:150)
    at com.sun.javafx.event.CompositeEventHandler$NormalEventFilterRecord.handleCapturingEvent(CompositeEventHandler.java:282)
    at com.sun.javafx.event.CompositeEventHandler.dispatchCapturingEvent(CompositeEventHandler.java:98)
    at com.sun.javafx.event.EventHandlerManager.dispatchCapturingEvent(EventHandlerManager.java:223)
    at com.sun.javafx.event.EventHandlerManager.dispatchCapturingEvent(EventHandlerManager.java:180)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchCapturingEvent(CompositeEventDispatcher.java:43)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:52)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) …
Run Code Online (Sandbox Code Playgroud)

java combobox javafx

0
推荐指数
1
解决办法
2343
查看次数

可视树中的ComboBox弹出窗口在哪里?

在可视化树中我可以找到ComboBox弹出窗口(带有ComboBoxItems的列表)?

我已经以编程方式打开了一个ComboBox,当在调试器中的WPF Tree Visualizer中观察它时,我看到以下内容:

: ComboBox
  templateRoot : Grid
    PART_Popup : Popup
    toggleButton : ToggleButton
      templateRoot : Border
        splitBorder : Border
          Arrow : Path
    contentPresenter : ContentPresenter
      : TextBlock
Run Code Online (Sandbox Code Playgroud)

我希望看到ScrollViewer带有某种物品主机(StackPanel?),也许是PART_Popup所在的地方,但什么都没有.

那它在哪里?

c# wpf combobox visual-tree

0
推荐指数
1
解决办法
2431
查看次数

覆盖ComboBox的DrawItem

我更改了各种控件的突出显示颜色,并计划进行更多更改。因此,我最好创建自己的控件并重用它们,而不是为每个控件进行更改。

我创建了一个新的用户控件,并继承自System.Windows.Forms.ComboBox。问题是我找不到onDraw像我那样的方法来覆盖onClick

那么我将如何去覆盖它呢?这是我用于每个控制onDraw事件的代码

public void comboMasterUsers_DrawItem(object sender, DrawItemEventArgs e)
    {
        e.DrawBackground();

        Graphics g = e.Graphics;
        Brush brush = ((e.State & DrawItemState.Selected) == DrawItemState.Selected) ?
                      Brushes.LightSeaGreen : new SolidBrush(e.BackColor);

        g.FillRectangle(brush, e.Bounds);
        e.Graphics.DrawString(comboMasterUsers.Items[e.Index].ToString(), e.Font,
                 new SolidBrush(e.ForeColor), e.Bounds, StringFormat.GenericDefault);

        e.DrawFocusRectangle();
    }
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# inheritance controls combobox ondraw

0
推荐指数
1
解决办法
6925
查看次数

ComboBox.Items [i]的ValueMember使用WinForms c#

我使用下面的代码填写一个ComboBox:

cbxLines.DisplayMember = "Value";
cbxLines.ValueMember = "Key";
cbxLines.DataSource = new BindingSource(GetProductionLines(), null);

private Dictionary<int, string> GetProductionLines()
Run Code Online (Sandbox Code Playgroud)

现在我想用DisplayMemberComboBox中的每一个填充ListView 以及其他信息:

lvSelectedSetup.Items.Clear();
for (int i = 0; i <= cbxLines.Items.Count - 1; i++)
{
     ListViewItem item = new ListViewItem();
     item.SubItems.Add(cbxLines.Items[i].ToString());  <-- How to Get DisplayMember
     item.SubItems.Add(cbxFromDate.Text);
     item.SubItems.Add(cbxToDate.Text);
     lvSelectedSetup.Items.Add(item);
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何从ComboBox 获取ValueMemberDisplayMember从ComboBox获取.

我正在尝试执行以下操作,但卡住了:

item.SubItems.Add(cbxLines.Items[i].GetType().GetProperty(cbxLines.ValueMember).GetValue(cbxLines,null))
Run Code Online (Sandbox Code Playgroud)

任何建议?

c# combobox winforms

0
推荐指数
1
解决办法
441
查看次数

为什么我会使用此代码获得"Invalid Cast"?

我有一个表单,其中包含以下类型的控件(仅):

Button
ComboBox
Label
TextBox
Run Code Online (Sandbox Code Playgroud)

我有一个"清除"按钮,调用此方法:

private void ClearControls()
{
    foreach (TextBox txtbx in this.Controls)
    {
        if (txtbx != null)
        {
            txtbx.Text = string.Empty;
        }
    }
    foreach (ComboBox cmbx in this.Controls)
    {
        if (cmbx != null)
        {
            cmbx.SelectedIndex = -1;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

...但是当我调用它时,应用程序挂起,日志文件显示该方法的"无效转换".怎么会这样?它应该处理TextBoxes和ComboBoxes,并忽略其余的 - 无效的演员阵容在哪里?

c# combobox textbox casting runtime-type

0
推荐指数
2
解决办法
199
查看次数

string.contains来自combobox的项目

另一个复杂的,我到处搜索,只能找到'如何在组合框中找到字符串'的答案

我想知道相反的情况.我有一个充满城市(字符串)的组合框,我传递了一个地址字符串.

我想搜索我的地址字符串,看它是否包含我的组合框中当前的任何一个城市.

例如.组合框包含:伦敦,巴黎,柏林

传入的地址:

  • 123,街道,城镇,伦敦,邮编(真)
  • 123,街道,城镇,罗马,邮编(假)

我正在思考

address.Contains(combobox.Any().ToString());
Run Code Online (Sandbox Code Playgroud)

但你可能会说,这不起作用!

c# search combobox winforms

0
推荐指数
1
解决办法
1089
查看次数

在IE 10中默认打开jQuery ui组合框

我正在使用jQuery UI Autocomplete在我的UI中显示组合框.我引用了以下网址http://jqueryui.com/autocomplete/#combobox 来渲染comboBoxes.对于我的下拉有ID说"myComboBox",我已经设置了组合框以在页面加载时使用以下内容进行聚焦.

$('#myComboBox').next().find('input').focus();
Run Code Online (Sandbox Code Playgroud)

这在chrome和IE 9中工作正常,但是在IE 10中,默认情况下,在任何用户选择之前打开组合框.IE版本10中是否有针对此特定错误的解决方法

javascript jquery internet-explorer combobox jquery-ui

0
推荐指数
1
解决办法
497
查看次数