我有一个绑定到一组数据的WPF ComboBox。我没有权限直接修改控件,也无法更改数据。
我在ComboBox中返回了1项,但实际上有2行;空白行和我的预期值。两者似乎都有一个索引值0.我不想看到这个空白行,只是我自动选择的ComboBox中的预期数据。我在这里查看了每个人的相关帖子,但没有一个解决方案适用于我的案例。我已经编程了很长时间,但仍然是WPF的新手。谢谢你的帮助。
XAML
<MyComboBox Name="myTemplate5" MyLookup="Lookup" MyFilter="att_idn=-37" MyData="Detail" MyName="comp_tmpl_idn_srt" ModCde="31" MyEmptyValue="0" ToolTip="Have a nice day" Margin="0,2.5,30,2.5" MinWidth="120" Grid.Column="1" SelectionChanged="myTemplate5_SelectionChanged" />
C#
private void myTemplate1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
MyComboBox work = sender as MyComboBox;
if (work != null && work.HasSelectionChanged(e))
{
int compTmplId = int.Parse(work.SelectedValue.ToString());
if (!_wpfIsDumb && !ChangeComponent(compTmplId))
{
_wpfIsDumb = true;
work.SelectedItem = e.RemovedItems[0];
_wpfIsDumb = false;
}
}
}
public bool HasSelectionChanged(SelectionChangedEventArgs e)
{
if (e.RemovedItems.Count > 0 && e.AddedItems.Count > 0)
return true;
else
return false;
}
答案 0 :(得分:2)
我找到了解决方案。所选索引不起作用。问题在于数据。我得到一个传递给框的NULL值。一旦我从SQL中删除了NULL返回,它就按预期工作了。
答案 1 :(得分:1)
您可以通过将SelectedIndex设置为0来实现此目的。
XAML:
<ComboBox Name="myCB"
SelectedIndex="0"
MaxWidth="200" MaxHeight="25" />
代码隐藏:
namespace nsComboBox
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
myCB.Items.Add("Item 1");
myCB.Items.Add("Item 2");
myCB.Items.Add("Item 3");
myCB.SelectedIndex = 0;
}
}
}