Combobox选择更改了事件触发器,甚至没有更改ComboBox中的选择

Man*_*ble 7 wpf combobox dataset selectionchanged

你能帮我找到这个错误:在加载windows窗体之前触发事件.我开始看到消息Box然后我单击确定,然后它加载主屏幕.之后一切正常,我想知道甚至在加载窗口之前触发ComboBox SelectionChanged事件.FillComboBoxFamilyData(SegmentCode)只是创建一个数据集并将值放在ComboBox中.请参阅此链接以获取完整代码.

无法使级联组合框工作

任何帮助将非常感谢.谢谢.

 <ComboBox Height="23" HorizontalAlignment="Left" Margin="35,26,0,0" Name="comboBox1" VerticalAlignment="Top" Width="205" ItemsSource="{Binding Source={StaticResource tblSegmentViewSource}}"  DisplayMemberPath="Segment Name" SelectedValuePath="Segment Code" SelectionChanged="comboBox1_SelectionChanged"/>
 <ComboBox Margin="304,26,395,93" Name="comboBox2" />


    private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        MessageBox.Show(comboBox1.SelectedValue.ToString());
        SegmentCode = Convert.ToInt32(comboBox1.SelectedValue.ToString());
        FillComboBoxFamilyData(SegmentCode);

    }
Run Code Online (Sandbox Code Playgroud)

HCL*_*HCL 16

在加载数据的时刻(通过绑定附加),将触发SelectionChanged.因此,如果您的应用程序已准备就绪并且已加载并附加了所有数据,则必须检入事件处理程序.如果没有,则返回事件处理程序而不执行任何操作.此行为是设计使然.

ItemsSource="{Binding Source={StaticResource tblSegmentViewSource}}"  
Run Code Online (Sandbox Code Playgroud)

IsLoaded如果已经评估了绑定,则可以使用-property来检测.IsLoaded除非数据绑定引擎已经评估了你的xaml绑定,否则不会成立.

private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)     { 
   if(!IsLoaded){
      return;
   }
   .... your code here
Run Code Online (Sandbox Code Playgroud)