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)
| 归档时间: |
|
| 查看次数: |
11272 次 |
| 最近记录: |