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 绑定)的主要内容,如果未能解决你的问题,请参考以下文章