Telerik RadComboBox未显示所选项目

时间:2010-09-24 19:44:45

标签: silverlight data-binding telerik radcombobox

我有一个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”

如果是这种情况,那么如何告诉控件在下拉列表中显示哪些字段?

2 个答案:

答案 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解析器感到困惑。