【发布时间】:2019-02-22 17:56:47
【问题描述】:
我无法在需要时从 RadCombobox 中“清除”当前选择。根据另一个 radcombobox 的值,此 RadCombobox 会使用新数据反弹。重新绑定后,应清除先前的选择。但它仍然显示。如果先前的选择是“OAK”,那么当组合框应该为空白时,组合框仍将 OAK 显示为选择。我发现 radcombobox 的设置非常棘手,所以我确信这对我来说很愚蠢。
组合框的 Text 属性绑定到下面设置的 woodSpecies:
<telerik:RadComboBox x:Name="cboWoodSpecies"
FontSize="16" Background="#F6F8FA" BorderBrush="#D7D8DD"
ItemsSource="{Binding}"
SelectedValue="theWoodSpecies"
Text="{Binding woodSpecies}"
telerik:TextSearch.TextPath="theWoodSpecies"
IsEditable="True"
Style="{DynamicResource RadComboBoxStyle3}" >
<telerik:RadComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding theWoodSpecies}"/>
<TextBlock Grid.Column="1" Text="{Binding WoodSpeciesUpchargeDisplay}"/>
<TextBlock Grid.Column="2" Text="{Binding WoodSpeciesUpcharge}" Visibility="Hidden"/>
</Grid>
</DataTemplate>
</telerik:RadComboBox.ItemTemplate>
</telerik:RadComboBox>
Private _woodSpecies As String
Public Property woodSpecies As String
Get
Return _woodSpecies
End Get
Set(value As String)
_woodSpecies = value
NotifyPropertyChanged("woodSpecies")
End Set
End Property
当需要清除先前的选择时,运行此代码:
thisOrder = New Order 'sets woodSpecies to empty string. Verified by debug.
cboWoodSpecies.SelectedIndex = -1 ' A debug break here shows that thisOrder.woodSpecies is empty string
我可以清除 radcombobox 的唯一方法是使用下面的代码。但我认为这就是 INotifyPropertyChanged 的全部意义所在。
cboWoodSpecies.Text = String.Empty
如何解决这个问题?谢谢。
【问题讨论】:
标签: vb.net telerik radcombobox