【问题标题】:C# WPF ComboBox - Exclude last row (or Blank Space) of Binding Data (binding from Microsoft Access)C# WPF ComboBox - 排除绑定数据的最后一行(或空格)(从 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 属性?

【问题讨论】:

    标签: c# wpf ms-access combobox


    【解决方案1】:

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

    【讨论】:

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

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

    【讨论】:

    • 我确实按照指南 (stackoverflow.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>
    

    【讨论】:

      猜你喜欢
      • 2012-06-23
      • 2010-09-15
      • 2011-05-06
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多