标签: combobox

在表单加载时停止comboBox的selectedIndexChanged事件

我有一个ComboBox提供下拉列表的表单.在comboBox上SelectedIndexChanged event,运行一些代码,但我不希望代码在表单加载时运行.不幸的是,当我加载表格时(在我在组合框中进行选择之前),SelectedIndexChanged组合框发射(我认为当组合框时databinding).有没有办法避免这种行为?

data-binding combobox winforms

72
推荐指数
4
解决办法
8万
查看次数

jQuery"on create"事件,用于动态创建的元素

我需要能够动态创建<select>元素并将其转换为jQuery .combobox().这应该是元素创建事件,而不是某些"click"事件,在这种情况下我可以使用jQuery .on().

这样的事情存在吗?

$(document).on("create", "select", function() {
    $(this).combobox();
}
Run Code Online (Sandbox Code Playgroud)

我不愿意使用livequery,因为它已经过时了.

更新提到的select/combobox通过ajax加载到jQuery颜色框(模态窗口),因此问题 - 我只能使用colorbox启动组合框onComplete,但是在更改一个组合框时,必须动态创建另一个select/combobox,因此我需要一个检测元素创建的更通用方法(select在本例中).

UPDATE2为了尝试进一步解释问题 - 我有select/combobox递归创建的元素,里面还有很多启动代码.combobox(),因此如果我使用经典的方法,比如在@ bipen的答案中,我的代码会膨胀到疯狂的级别.希望这能更好地解释问题.

UPDATE3感谢大家,我现在明白,因为DOMNodeInserted在DOM变异中遗漏了一个空白,并且没有解决这个问题的方法.我只需要重新考虑我的申请.

javascript jquery combobox

72
推荐指数
6
解决办法
9万
查看次数

jQuery UI自动完成组合框很慢,大选择列表

我正在使用jQuery UI Autocomplete Combobox的修改版本,如下所示:http: //jqueryui.com/demos/autocomplete/#combobox

为了这个问题,让我说我有完全相同的代码^^^

打开组合框时,通过单击按钮或聚焦组合框文本输入,在显示项目列表之前会有很大的延迟.当选择列表有更多选项时,此延迟会明显变大.

这种延迟不仅仅发生在第一次,它每次都会发生.

由于此项目中的一些选择列表非常大(数百和数百项),延迟/浏览器冻结是不可接受的.

有人能指出我正确的方向来优化这个吗?或者甚至可能出现性能问题?

我认为问题可能与脚本显示完整项目列表的方式有关(自动完成搜索空字符串),是否有其他方式显示所有项目?也许我可以构建一个关闭显示所有项目的案例(因为在开始键入之前打开列表是很常见的),它不能完成所有的正则表达式匹配?

这是一个摆弄的小提琴:http: //jsfiddle.net/9TaMu/

performance jquery combobox jquery-ui autocomplete

62
推荐指数
4
解决办法
6万
查看次数

我可以在WPF ComboBox中为所选项目使用不同的模板而不是下拉部分中的项目吗?

我有一个WPF组合框,它充满了,例如,客户对象.我有一个DataTemplate:

<DataTemplate DataType="{x:Type MyAssembly:Customer}">
    <StackPanel>
        <TextBlock Text="{Binding Name}" />
        <TextBlock Text="{Binding Address}" />
    </StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

这样,当我打开我的ComboBox时,我可以看到不同的客户的姓名,以及下面的地址.

但是当我选择一个Customer时,我只想在ComboBox中显示Name.就像是:

<DataTemplate DataType="{x:Type MyAssembly:Customer}">
    <StackPanel>
        <TextBlock Text="{Binding Name}" />
    </StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

我可以为ComboBox中的所选项目选择另一个模板吗?

在答案的帮助下,我解决了这个问题:

<UserControl.Resources>
    <ControlTemplate x:Key="SimpleTemplate">
        <StackPanel>
            <TextBlock Text="{Binding Name}" />
        </StackPanel>
    </ControlTemplate>
    <ControlTemplate x:Key="ExtendedTemplate">
        <StackPanel>
            <TextBlock Text="{Binding Name}" />
            <TextBlock Text="{Binding Address}" />
        </StackPanel>
    </ControlTemplate>
    <DataTemplate x:Key="CustomerTemplate">
        <Control x:Name="theControl" Focusable="False" Template="{StaticResource ExtendedTemplate}" />
        <DataTemplate.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ComboBoxItem}}, Path=IsSelected}" Value="{x:Null}">
                <Setter TargetName="theControl" Property="Template" Value="{StaticResource SimpleTemplate}" />
            </DataTrigger>
        </DataTemplate.Triggers>
    </DataTemplate>
</UserControl.Resources> …
Run Code Online (Sandbox Code Playgroud)

wpf templates combobox

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

从C#WPF中的组合框中获取选定的值

我刚开始使用WPF表单而不是Windows Forms表单.在Windows窗体表单中,我可以这样做:

ComboBox.SelectedValue.toString();
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作.

我如何在WPF中执行此操作?它似乎没有选择权.

c# wpf combobox

59
推荐指数
7
解决办法
31万
查看次数

使用Dictionary作为数据源绑定组合框

我正在使用.NET 2.0,我正在尝试将组合框的数据源绑定到排序字典.

所以我得到的错误是"DataMember属性'Key'无法在数据源上找到".

        SortedDictionary<string, int> userCache = UserCache.getSortedUserValueCache();
        userListComboBox.DataSource = new BindingSource(userCache, "Key"); //This line is causing the error
        userListComboBox.DisplayMember = "Key";
        userListComboBox.ValueMember = "Value";
Run Code Online (Sandbox Code Playgroud)

.net c# combobox datasource winforms

59
推荐指数
4
解决办法
11万
查看次数

WPF Combobox DisplayMemberPath

好的,我查看了其他问题,似乎没有得到我的答案,所以希望有人在这里.

非常简单的问题为什么DisplayMemberPath属性不绑定到项目?

<ComboBox Grid.Row="1" Grid.Column="2" ItemsSource="{Binding PromptList}" DisplayMemberPath="{Binding Name}" SelectedItem="{Binding Prompt}"/>
Run Code Online (Sandbox Code Playgroud)

跟踪输出显示它正在尝试绑定到持有IEnumerable的类而不是IEnumerable中的实际项.我很困惑一个简单的方法来填充一个组合框而不在xaml中添加一串线.

它只是在itemssource中为对象调用ToString().我有一个解决方法是:

<ComboBox Grid.Row="1" Grid.Column="2" ItemsSource="{Binding PromptList}"  SelectedItem="{Binding Prompt}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Name}"/>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)

但在我看来,对于这么简单的任务来说太过分了.我可以使用relativesource绑定吗?

wpf combobox

57
推荐指数
4
解决办法
8万
查看次数

C# - 如何防止组合框中的鼠标滚轮滚动?

我有一个组合框,我想阻止用户使用鼠标滚轮滚动项目.

有一个简单的方法吗?

(C#,VS2008)

c# combobox mousewheel

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

VB.NET:如何防止ComboBox中的用户输入

如何阻止用户在ComboBox中输入,以便用户只能选择定义列表中的一个项目?

.net vb.net combobox

55
推荐指数
2
解决办法
14万
查看次数

ComboBox.SelectedText没有给我SelectedText

我正在构建一个String,代码看起来像

String status = "The status of my combobox is " + comboBoxTest.SelectedText
Run Code Online (Sandbox Code Playgroud)

我在VS2010中使用WinForm

结果看起来像

"我的组合框的状态是"

c# string combobox winforms

52
推荐指数
5
解决办法
10万
查看次数