C# WPF ComboBox - 排除绑定数据的最后一行(或空格)(从 Microsoft Access 绑定)

Posted

技术标签:

【中文标题】C# WPF ComboBox - 排除绑定数据的最后一行(或空格)(从 Microsoft Access 绑定)【英文标题】:C# WPF ComboBox - Exclude last row (or Blank Space) of Binding Data (binding from Microsoft Access) 【发布时间】:2016-08-15 10:40:39 【问题描述】:

目前我正在使用 Microsoft Access 来保存数据,它将绑定到 WPF 组合框。下面的代码几乎可以正常工作。

oleDBCommand.CommandText =

"SELECT "
    + "table.[Col1] & ' - ' & table.[Col2] As COl1_Col2, table.[Col3] " +

"FROM "
    + "table_1 " +

"WHERE "
        + "(table_1.[col3] = '" + comboboxSelection.Text + "' OR table.[col3] = 'All') "; 

我遇到的问题是组合框在其中显示空白。我可以知道如何删除它吗?是通过 Access Query 还是 ComboBox 属性?

【问题讨论】:

【参考方案1】:

尝试设置 ScrollViewer.CanContentScroll="False" 在您的 ComboBox 上。

【讨论】:

谁能解释为什么这隐藏了不可见的水平滚动条而不是可见的垂直条?【参考方案2】:

组合框只会显示您提供的对象,请仔细查看查询中的数据。您可能需要在 where 子句中添加一个额外的过滤器来排除具有空值的行。

【讨论】:

我确实按照指南 (***.com/questions/1584493/…) 的步骤进行操作,但仍然存在空白。唯一不同的是(与使用不同表[仅包含 2 个字段]的其他组合框相比),它有 8 个以上的字段。而且我不确定该字段是否会导致出现空白? 我发现如果我的数据库行超过 15 行,它将在组合框底部显示空白。如果我的数据库行是 15 或更少,它不会在组合框中显示任何空白。任何人对此有想法? 您是否在与 WPF 应用程序隔离的情况下测试了查询代码,以查看查询是否返回空白数据行? 我在 Microsoft Access 中测试了查询,但它没有显示空白行(最后一行为空白)。一件事我发现 WPF 组合框中的空白行无法选择。 (意味着它只是出现在那里,当我尝试选择空白行时,它无法选择)【参考方案3】:

这可能是一个旧线程,但我遇到了与 ComboBox 相同的问题。问题是 ComboBox 将项目与 TOP 对齐,因此它不是额外的项目或行。这只是发布您的项目后留下的空间。因此,假设您的组合框高度为 37 像素,每个项目的高度为 10 像素,那么您将看到最后一个 7 像素的空间。尝试保持组合框的高度与其单个元素的高度相同。

 <ComboBox Width="200"
       Height="50"
       ItemsSource="Binding MyList">
    <ComboBox.ItemContainerStyle>
        <Style TargetType="ComboBoxItem">
            <Setter Property="Height" Value="50" />
            <Setter Property="Width" Value="50" />
        </Style>
    </ComboBox.ItemContainerStyle>

【讨论】:

以上是关于C# WPF ComboBox - 排除绑定数据的最后一行(或空格)(从 Microsoft Access 绑定)的主要内容,如果未能解决你的问题,请参考以下文章

C# winform 编程下ComboBox 怎么给他绑定三个值?

c#的winform程序中,radiobutton的用法

Wpf的comboBox怎么绑定数据?

在wpf中怎么绑定comboBox的值

在WPF中的Combobox中绑定

WPF Combobox数据绑定Binding