ItemsControl(WPF/Silverlight、私は両方とも同じコードベースを使用しています)から直接継承してカスタムのItemsControlを作成しようとしています。 ContentControlから継承してItemクラスを作成しました。 ItemクラスのIsSelectedプロパティを作成します。 ListBoxItemクラスを反映しましたが、IsSelectedプロパティの設定方法があまり明確ではありません。 どのような提案/ポインタが本当に役に立ちます。カスタムitemscontrolItemのIsSelectedプロパティを作成する方法は?
1
A
答えて
1
あなたはそれが内部的に選択の概念をサポートしていることを除いて無ListBox
機能をItemsControl
をしたい場合は、簡単ItemsControl
と区別できないlookless ListBox
を作成することができます。ここには2つの2つの側面があり、あなたはその違いを伝えることはできません。唯一の違いは、左のリストが選択を内部的にサポートしていることです。
<Grid>
<Grid.Resources>
<x:Array Type="sys:String" x:Key="sampleData">
<sys:String>Red</sys:String>
<sys:String>Green</sys:String>
<sys:String>Blue</sys:String>
</x:Array>
</Grid.Resources>
<UniformGrid Columns="2">
<ItemsControl ItemsSource="{StaticResource sampleData}"/>
<ListBox ItemsSource="{StaticResource sampleData}">
<ListBox.Style>
<Style TargetType="ListBox">
<Setter Property="Focusable" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBox">
<ItemsPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Style>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Focusable" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<ContentPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</UniformGrid>
</Grid>
だから、最高のアドバイスは、あなたが選択をしたい場合は、ListBox
から派生であり、あなたがそれについてたいか、少なくともSelector
から派生していないものを離れてスタイル。
関連する問題
- 1. ListViewItemのDataTemplateでIsSelectedプロパティをバインドする方法
- 2. リストビューのIsSelectedプロパティ(Beginner)
- 3. ClipboardEventのカスタムclipboardDataプロパティを作成する
- 4. カスタムAuthorizeAttributeは、私は、カスタムAuthorizeAttributeを作成する方法
- 5. リストのプロパティを作成する方法
- 6. WPFカスタムDataGridCellでカスタムDataGridを作成する方法は?
- 7. カスタムGridViewの作成方法
- 8. カスタムprogressDialogの作成方法
- 9. カスタムUIDatePickerコントロールを作成する方法
- 10. カスタムIDを作成する方法
- 11. カスタムSwingコンポーネントを作成する方法
- 12. カスタムDataGridViewCellを作成する方法
- 13. カスタムUICollectionViewCellを作成する方法
- 14. カスタムUISliderを作成する方法
- 15. カスタム入力の作成方法は?
- 16. カスタムNSCharacterSetの作成方法は?
- 17. カスタムIntelliJプロジェクトテンプレートの作成方法は?
- 18. カスタムPOCOシリアライザ/デシリアライザの作成方法は?
- 19. カスタムMVC3 ActionLinkメソッドの作成方法は?
- 20. プロパティでカスタムコントロールを作成する方法
- 21. Sequelize - カスタム作成方法
- 22. cocos2d-xでカスタム作成機能を作成する方法
- 23. 親ListViewItemのIsSelectedプロパティへのバインド
- 24. AutoLayoutをサポートするカスタム実装のtextViewの作成方法は?
- 25. カスタムDataGridViewColumnのカスタムEditingControlのプロパティを設定する方法
- 26. カスタムFacebookファンページを作成する最速の方法は?
- 27. iOSでカスタムNSLinguisticTaggerタグのスキームを作成する方法は?
- 28. CSSでカスタムの水平ラジオボタンを作成する方法は?
- 29. JavaScriptでカスタムCSSファイルのクラスを作成する方法は?
- 30. "Geanyテキストエディタ"の "スニペット"でカスタム日付を作成する方法は?
選択動作を既に実装している 'Selector'または' ListBox'ではなく、 'ItemsControl'を拡張することを選択したのはなぜですか? –
私はDanielに同意します。 ItemsControlのカスタム実装を作成する理由はまだ見つかりませんでした。拡張機能のために期待されるものは、コントロールがテンプレートやその他の方法で動作する方法を変更するのに十分シンプルな場合があるからです。 – CodeWarrior
おそらくこのように:SetItem(ItemsControl) - > Setter内でコントロールコンテナを見つける - > Set IsSelected。逆の方法で、PropertyChangedイベントを使用することができます。 – vorrtex