2

正常に機能する複数選択コンボボックスがあります。テキストを除いて。ユーザーが何を選択したかに関係なく、常に同じテキスト(「商品フィルター」)を使用したい。

iseditableをtrueに設定し、テキストをCommodityFilterに設定すると、ユーザーが選択するまで問題なく表示され、ガベージになります(オブジェクトタイプ名が表示されます)。どうすればそこにテキストをハードコーディングできますか?(実際には、データバインドして、選択したものに応じて変更できるようにするのが理想的ですが、この時点ではボーナスになります)

 <ComboBox IsEditable="True" Text ="Commodity Filter" ItemsSource="{Binding Path=ActiveCommodities}">
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <CheckBox IsChecked="{Binding IsSelected}"
                                      Width="20" />
                            <TextBlock Text="{Binding Commodity}"
                                       Width="100" />
                        </StackPanel>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
4

2 に答える 2

0

フィルタリングを制御するためにいくつかのコンボボックスを作成していたため、ComboBox(IsSelectedプロパティがあり実装されている)にデータを入力するためのカスタムオブジェクトを作成することになりました。INotifyPropertyChangedこれを実行すると、カスタムオブジェクトのtostringをオーバーライドして、適切なテキストを渡すのは簡単でした。したがって、xamlはあまり変更されませんでした。

テキストボックスでオーバーレイする方がよかったのですが、それは妥当な時間で洗練された外観を得る私の能力を超えているように見えました。

   <ComboBox  ItemsSource="{Binding Path=ActiveFuturesMonths}"
               IsEditable="True"
               IsReadOnly="True"
               Text="Futures Month Filter" >
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <CheckBox IsChecked="{Binding IsSelected}"
                              Width="20" />
                    <TextBlock Text="{Binding Text}"
                               Width="100" />
                </StackPanel>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
于 2012-11-22T21:21:56.947 に答える
0

実際、核心は設定にあります-IsEditable = "True" IsReadOnly = "True" Text = "Futures Month Filter"

カスタムオブジェクトを作成するのではなく。どうもありがとうございました。

于 2015-09-03T12:30:36.763 に答える