Silverlight ComboBox では、ドロップダウン リストを開いて現在選択されている項目をクリックしても、SelectionChanged イベントは発生しません。これが発生したときにイベント/メソッドをトリガーする最良の方法は何ですか? (通常は SelectionChanged をトリガーするものに加えて、つまり、選択されていないアイテムまたは選択されているアイテムをクリックしますが、ドロップダウンをクリックしただけではありません)
現在、リスト内のアイテムに対して DataTemplates を設定しています。その中の要素のMouseLeftButtonUpイベントにアタッチしようとしたのですが、アイテムの周りに余白があるため、コンボボックスを閉じてアイテムを選択するクリックが常に登録されるとは限りません。
2495 次
2 に答える
1
「DropDownClosed」イベントを検討しましたか?
于 2011-06-02T20:28:55.153 に答える
0
前回のコメントから久しぶりですが、誰かが同じ問題を抱えている場合に備えて、解決策を投稿します。現在選択されているアイテムを「再選択」する唯一の方法は、ComboBoxItemTemplateを次のように変更することでした。
<Style TargetType="ComboBoxItem">
....
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBoxItem">
<Grid ... MouseLeftButtonDown="Grid_MouseLeftButtonDown">
...
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
ここで、Grid_MouseLeftButtonDownイベントで、現在のアイテムの選択を解除します。マウスクリックは通常どおりに処理され、マウスカーソルの下にある要素が選択されます。
于 2012-10-22T14:46:50.043 に答える