2010-09-24 11 views
2

J'ai un RadComboBox que je suis lié comme indiqué ci-dessousTelerik RadComboBox ne présentant pas l'élément sélectionné

<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> 

Lorsque je sélectionne un élément que je surprends l'événement Changed la propriété, mais essentiellement la sélection dans la zone de liste déroulante reste vide.

Qu'est-ce que je fais de mal?

Ok je l'ai fait pour qu'il montre maintenant .. Mais je ne comprends pas pourquoi ... Ou comment changer si ça marche pour moi dans tous les cas ...

  <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> 

Cest ce qui fonctionne ... la plus grande différence était. Je devais nommer un champ à "Name", puis le lier et sortir le DisplayMemberPath = "Path = ReportName"

Si tel est le cas alors comment puis-je dire au champ Champ à afficher dans la liste déroulante?

Répondre

4

Est-ce que vous changez votre collection? Les contrôles ne recherchent les éléments qu'une seule fois. Ainsi, si la page se charge et que vous chargez votre collection de RepTypes, elle ne met pas à jour le dictionnaire. Je fais quelque chose de similaire et je suis paresseux en chargeant ma collection (au fur et à mesure que vous tapez, j'obtiens plus de la base de données).

 <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> 
0

Si vous voulez ReportName être présentée comme membre de votre écran, il suffit de le mettre de cette façon:

<telerik1:RadComboBox ItemsSource="{Binding RepTypes}" SelectedValuePath="Value" 
SelectedItem="{Binding RepType, Mode=TwoWay}" DisplayMemberPath="ReportName"> 

</telerik1:RadComboBox> 

Vous mettez un supplément « Path = » qui est source de confusion que le XAML analyseur