我有一个Telerik RadComboBox设置如下:
<t:RadComboBox Grid.Column="1" Grid.ColumnSpan="5" Grid.Row="3" x:Name="customer" IsReadOnly="True" IsEditable="True"
ItemsSource="{Binding Path=Customers, Mode=OneWay}" DisplayMemberPath="Name" SelectedValuePath="Id"
SelectedValue="{Binding Path=CustomerId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
SelectionChanged="customer_SelectionChanged_1"/>
组合已正确填充,但如果我单击下拉列表并从列表中选择一个项目,则SelectedValue
属性不会更新。如果我开始输入组合并选择一个项目,则SelectedValue
属性不会更新。 但是如果我使用鼠标滚轮或箭头键,则SelectedValue
属性 正确更新。
我在代码中添加了SelectionChanged
事件,因此我可以查看控件的属性(此应用程序使用的是MVVM模式),即使SelectedItem
属性< em> 设置为有效项,SelectedValue
属性为null。如果我使用鼠标滚轮向下滚动到一个项目,那么两个属性都按照我的预期正确设置。
答案 0 :(得分:2)
事实证明,这是由于我的视图模型在没有选择时默认返回Guid.Empty
这一事实。但由于列表中没有Id
属性为Guid.Empty
的项目,控件会混淆。
添加属性:SelectedIndex="0"
修复此问题。