我想根据其他ComboBox的选择填充一个ComboBox。两个组合框都是使用WCF从数据库中填充的。我的问题是,在第一次选择时,它不起作用(就在第二次选择之后,它是工作的,它显示了来自第一选择的结果)。
XAML
<ComboBox
x:Name="selClientCombo"
SelectionChanged="listEchipamente"
IsEditable="True"
SelectedIndex="-1"
HorizontalAlignment="Left"
Margin="455,35,0,0"
VerticalAlignment="Top"
Width="215"
ItemsSource="{Binding Mode=OneWay}"/>
<ComboBox
x:Name="selEchipamentCombo"
HorizontalAlignment="Left"
Margin="457,65,0,0"
VerticalAlignment="Top"
Width="213"
ItemsSource="{Binding}"/>码
private void listEchipamente(object sender, SelectionChangedEventArgs e)
{
List<string> echipamenteWCF = client.getEchipament(selClientCombo.Text).ToList();
MessageBox.Show(" Client Selected !");
if (selEchipamentCombo.Items.Count >0)
{
selEchipamentCombo.Items.Clear();
}
for (int i = 0; i < echipamenteWCF.Count(); i++)
{
selEchipamentCombo.Items.Add(echipamenteWCF[i]);
}
}发布于 2015-10-11 13:56:21
在触发SelectionChanged时,Text还没有被更新(因此它保存了以前的值)。
您应该访问基础数据项以获取文本:
if(selClientCombo.SelectedItem == null) return;
List<string> echipamenteWCF =
client.getEchipament(selClientComo.SelectedItem.ToString()).ToList();
...我认为ToString()将解析显示文本。您始终可以将SelectedItem转换为实际类型,并轻松访问其string属性(显示为文本)。您还可以访问SelectedValue,条件是为ComboBox设置了一些SelectedValuePath。
https://stackoverflow.com/questions/33064958
复制相似问题