我有一个RadComboBox,我绑定如下所示
<telerik1:RadComboBox Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="3" Margin="5,2" ItemsSource="{Binding RepTypes}" DisplayMemberPath="Path=TypeName" SelectedValuePath="Value" SelectedItem="{Binding RepType, Mode=TwoWay}" >
</telerik1:RadComboBox>
当我选择一个项目时,我会抓住Property Changed事件,但基本上组合框中的选择保持空白。
我做错了什么?
好的,我现在就出现了..但我不明白为什么......或者如何更改它以便在所有情况下都适合我...
<telerik1:RadComboBox Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="3" Margin="5,2" ItemsSource="{Binding RepTypes}" SelectedValuePath="Value" SelectedItem="{Binding RepType, Mode=TwoWay}" >
</telerik1:RadComboBox>
这是有效的......最重要的区别是。我必须将一个字段命名为“Name”,然后将其绑定并取出DisplayMemberPath =“Path = ReportName”
如果是这种情况,那么如何告诉控件在下拉列表中显示哪些字段?
答案 0 :(得分:4)
你是否以某种方式改变你的收藏?控件只查找一次项目。因此,如果页面加载然后您正在加载RepTypes集合,则它不会更新字典。我正在做类似的事情,我懒得加载我的收藏(当你输入时,我从数据库中得到更多)。
<t:RadComboBox x:Name="RepTypeComboBox" Margin="0,1"
t:TextSearch.TextPath="TypeName"
ItemsSource="{Binding Path=RepTypes, Mode=OneWay}"
SelectedValue="{Binding Path=Reptype, Mode=TwoWay, NotifyOnValidationError=True}"
IsEditable="True"
Grid.Column="1"
Grid.Row="2" TabIndex="1">
<t:RadComboBox.ItemTemplate >
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<TextBlock FontWeight="Bold" Text="{Binding Path=TypeName, Mode=OneWay}" Width="75"/>
<TextBlock Text=": " />
<TextBlock Text="{Binding Path=address1, Mode=OneWay}" />
<TextBlock Text=" " />
<TextBlock Text="{Binding Path=address2, Mode=OneWay}" />
<TextBlock Text=" " />
<TextBlock Text="{Binding Path=citystate, Mode=OneWay}" />
<TextBlock Text=" " />
<TextBlock Text="{Binding Path=zip, Mode=OneWay}" />
</StackPanel>
</DataTemplate>
</t:RadComboBox.ItemTemplate>
</t:RadComboBox>
答案 1 :(得分:0)
如果您希望ReportName
显示为您的展示成员,则只需这样说:
<telerik1:RadComboBox ItemsSource="{Binding RepTypes}" SelectedValuePath="Value"
SelectedItem="{Binding RepType, Mode=TwoWay}" DisplayMemberPath="ReportName">
</telerik1:RadComboBox>
你正在添加额外的“Path =”,这只会让XAML解析器感到困惑。