グリッドがあり、onclickイベントを追加したいと思います。GridViewのクリックイベントで
<ListView
HorizontalAlignment="Stretch"
Margin="10"
x:Name="BooksListView"
GridViewColumnHeader.Click="SortBooks"
>
<ListView.View>
<GridView></GridView>
</ListView.View>
</ListView>
私はこのSO questionから受け入れ答えを試してみたが、item.IsSelected
は常にfalseです。
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListViewItem_PreviewMouseLeftButtonDown" />
</Style>
</ListView.ItemContainerStyle>
C#コード:
private void ListViewItem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var item = sender as ListViewItem;
if (item != null && item.IsSelected) // IsSelected is always false
...
}
私は、このチェックを外し、またはそれを行うには良い方法はありますでしょうか?
このチェックはビジネスロジックにとって重要でない場合は削除できます。 –
必要に応じてitem.IsSelectedをtrueに設定できますが、イベントハンドラメソッドが終了した直後にプロパティが設定されると思われます。 MouseLeftButtonDown、MouseDown、またはMouseLeftButtonUpイベントを使用し、プレビューイベントは使用しないことをお勧めします。アイテムを選択すると、イベントが発生し、ハンドラが実行され、IsSelectedがtrueになることが保証されます。そのチェックを外すか、プレビューでないイベントを使用してください。私はMouseUpイベントを使用する傾向があるので、マウスをアイテムからドラッグして、誤って選択してアイテムを出させることができます。 – SimperT
@Matt答えがあなたのために機能しましたか? –