1
我这个代码代码为我的组合框:Combobox:为什么comboBox_SelectionChanged在为SelectedValue设置默认值时为空?
<ComboBox ItemsSource="{Binding Path=AvailableStrings}" SelectedValue="{Binding Path=CurrentStrings}" Name="availableStrings" SelectionChanged="availableStrings_SelectionChanged"/>
然后在代码隐藏我:
private void availableStrings_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string currentText = availableStrings.SelectedValue as string;
}
我试图调试,我得到这个顺序以下行为:
- 1st,
SelectedValue="{Binding Path=CurrentStrings}"
调用我的财产的get {...}
,并在此之后: availableStrings_SelectionChanged
被调用,availableStrings.SelectedValue
为空?!?
我的SelectedValue绑定只是叫get
并获得价值OO 好像availableStrings_SelectionChanged的价值已经被分配了我的组合框..之前被调用,这听起来像我的错误没有?
这真的是一个奇怪的行为...! –
事实上,如果你想在有效设置新值之前做一些测试,这可能是合乎逻辑的 –
奇怪的是什么?我很确定SelectedValue没有Set,所以UI没有地方存储值,所以它是空的。 XAML绑定不会引发错误。 – Paparazzi