首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SelectionChanged组合框WPF

SelectionChanged组合框WPF
EN

Stack Overflow用户
提问于 2015-10-11 12:29:43
回答 1查看 185关注 0票数 1

我想根据其他ComboBox的选择填充一个ComboBox。两个组合框都是使用WCF从数据库中填充的。我的问题是,在第一次选择时,它不起作用(就在第二次选择之后,它是工作的,它显示了来自第一选择的结果)。

XAML

代码语言:javascript
复制
<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}"/>

代码语言:javascript
复制
  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]);
                }

            }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-11 13:56:21

在触发SelectionChanged时,Text还没有被更新(因此它保存了以前的值)。

您应该访问基础数据项以获取文本:

代码语言:javascript
复制
if(selClientCombo.SelectedItem == null) return;
List<string> echipamenteWCF = 
                   client.getEchipament(selClientComo.SelectedItem.ToString()).ToList();
...

我认为ToString()将解析显示文本。您始终可以将SelectedItem转换为实际类型,并轻松访问其string属性(显示为文本)。您还可以访问SelectedValue,条件是为ComboBox设置了一些SelectedValuePath

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33064958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档