2

以下に示すようにバインドした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 イベントが発生しますが、基本的にコンボ ボックスの選択は空白のままです。

私は何を間違っていますか?

OK、今は表示されるようにしました..しかし、理由がわかりません...または、すべての場合に機能するように変更する方法...

           <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" を取り出す必要がありました

その場合、ドロップダウンに表示するフィールドをコントロールに伝えるにはどうすればよいですか?

4

2 に答える 2

4

どういうわけかコレクションを変更していますか?コントロールは項目を 1 回だけ検索します。そのため、ページが読み込まれた後に 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>
于 2010-12-27T15:55:09.703 に答える
0

ReportName表示メンバーとして表示されたい場合は、次のようにするだけです。

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

</telerik1:RadComboBox>

XAMLパーサーを混乱させるだけの余分な「Path =」を入れています。

于 2011-09-27T14:30:08.810 に答える