【问题标题】:Need a Combobox binding issue fix需要一个组合框绑定问题修复
【发布时间】:2013-07-09 01:57:21
【问题描述】:

你好。我正在学习 C# 和 WPF,请在我的代码中添加您的代码,这样我就可以轻松理解了。我是Binding CombBox 在 WPF 中使用 C# 代码,我需要修复这段代码中的东西 我无法在我的代码中找到我可以写的更多内容。

string sql = "SELECT " + ColumnsValue + "," + ColumnsName + " FROM " + TableName;
SqlDataAdapter da = new SqlDataAdapter(sql, Connection);
DataSet ds = new DataSet();                
da.Fill(ds, TableName);
ComboBox.ItemsSource = ds.Tables[0].DefaultView;
ComboBox.DisplayMemberPath = ds.Tables[0].Columns[ColumnsName].ToString();
ComboBox.SelectedValuePath = ds.Tables[0].Columns[ColumnsValue].ToString(); 
// Some Code here to to fix this
ComboBox.Selected = "--Select--";

我需要帮助来解决它如何使用Select 值作为ComboBox 顶部的选定值。希望有朋友有解决办法。

【问题讨论】:

  • 您必须使用 Tables[0].DefaultView 以及“--Select--”字段的元素来创建自己的源。将它们一起添加到一个集合中,并将其用作您的 itemssource。
  • 你能写到我的代码中吗?我确实知道该怎么做..
  • 对不起,我没有完全理解你
  • 创建一个新集合,将数据库查询中的所有内容添加到其中,并添加带有“--Select--”的字符串作为第一个元素,现在将其设置为您的 ItemsSource。根据您的 DataTemplate 的复杂程度,您需要提供两种不同的 DataTemplate,一种用于您的数据,另一种用于 Select 项。我可以说的很清楚。
  • Set Default Value For ComboBox 的可能重复项

标签: c# sql wpf combobox


【解决方案1】:

您可以创建名为 defaultTable 的新表对象 并分配 defaultTable.ColumnName = "--选中--" defaultTable.ColumnValue = 0(如果 columnValue 是 int,否则如果 columnValue 是字符串,则为“0”) ComboBox.Insert(0, defaultTable);

然后绑定ItemSource。 希望这对你有帮助。

【讨论】:

  • 我们可以在简单的 Windows 应用程序表单中使用它,我认为它不会在 wpf 中同样使用,请看清楚我的代码..
  • 它在 WPF 中的代码中对我有用。您可以将 .xaml 文件中的 Combobox ItemsSource 绑定为 ItemsSource="{Binding ComboBoxName}"
【解决方案2】:

这是在 stackoverflow 中找到的一个答案。

这里是link

有些选项是

  1. 如果您使用的是代码隐藏文件,则可以执行以下代码 sn-ps 之类的操作。

    myComboBox.Items.Insert(0, "--Select Item--");
    
    myComboBox.SelectedIndex = 0;
    
  2. 您可以使用值转换器

请查看此post 以使用值转换器

【讨论】:

  • 我在 WPF 中不工作之前尝试过这个,阅读我的代码或在 wpf 测试项目中尝试一下,你会知道的 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
相关资源
最近更新 更多