0
<DataGridTemplateColumn Header="Brand Code">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <ComboBox IsEditable="True" Text="{Binding Path=BrandCode, Mode=OneWayToSource}" ItemsSource="{Binding Brands}"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>

上記のコードはリストを表示しますが、値を選択すると BrandCode に割り当てられません。

しかし、次の列をクリックして編集すると、値が BrandCode に割り当てられます。

誰でも助けることができますか?

4

1 に答える 1

0

代わりにこれを試してください:

<ComboBox IsEditable="True" SelectedItem="{Binding Path=BrandCode, 
    Mode=OneWayToSource}" ItemsSource="{Binding Brands}"/>

アイテムの内容によって異なりますが、アイテムがクラスのインスタンスであり、特定のプロパティ値を返したい場合は、これを試すこともできます。

<ComboBox IsEditable="True" SelectedValue="{Binding Path=BrandCode, 
    Mode=OneWayToSource}" SelectedValuePath="NameOfPropertyToReturn" 
    ItemsSource="{Binding Brands}"/>

間違いなく動作することをテストしたところです...うまくいかない場合は、コードの他の場所に問題があります。

<StackPanel>
    <ComboBox ItemsSource="{Binding Brands}" SelectedItem="{Binding BrandCode}" />
    <TextBlock Text="{Binding SelectedValue}" />
</StackPanel>

更新 >>>

あなたのデータ クラスの最新のコードを見た後、私はあなたの問題を見ることができINotifyPropertyChangedます.インターフェースについて学ばずに、どのようにして WPF を書くことができたのでしょうか? 二人は手を取り合って進みます。解決策は、このインターフェイスをDataクラスに実装することです。これについては、MDSNのINotifyPropertyChanged Interfaceページを参照してください。

最初にすべてのコードを提示していただければ、この問題をすぐに修正できたはずです。

于 2013-09-19T14:10:32.303 に答える