前提・実現したいこと
WPFでアプリケーションの開発を行っております。
ItemsControlを利用しCollectionとのBindingをしつつ、ItemPanelでGridを指定しています。
マウスクリック時やDropイベント時に対象GridのRowIndex及びColumnIndexを取得したいのですが
Bind項目にない空白のセルの場合、取得することができず困っております。
空のセルでRowIndex及びColumnIndexを取得することは可能でしょうか。
XAML
1 <ItemsControl ItemsSource="{Binding}"> 2 <ItemsControl.ItemsPanel> 3 <ItemsPanelTemplate> 4 <Grid Background="Transparent" ShowGridLines="True" AllowDrop="True"> 5 <Grid.ColumnDefinitions> 6 <ColumnDefinition></ColumnDefinition> 7 <ColumnDefinition></ColumnDefinition> 8 <ColumnDefinition></ColumnDefinition> 9 <ColumnDefinition></ColumnDefinition> 10 <ColumnDefinition></ColumnDefinition> 11 <ColumnDefinition></ColumnDefinition> 12 <ColumnDefinition></ColumnDefinition> 13 <ColumnDefinition></ColumnDefinition> 14 </Grid.ColumnDefinitions> 15 <Grid.RowDefinitions> 16 <RowDefinition></RowDefinition> 17 <RowDefinition></RowDefinition> 18 <RowDefinition></RowDefinition> 19 <RowDefinition></RowDefinition> 20 <RowDefinition></RowDefinition> 21 <RowDefinition></RowDefinition> 22 <RowDefinition></RowDefinition> 23 <RowDefinition></RowDefinition> 24 </Grid.RowDefinitions> 25 </Grid> 26 </ItemsPanelTemplate> 27 </ItemsControl.ItemsPanel> 28 <ItemsControl.ItemContainerStyle> 29 <Style> 30 <Setter Property="Grid.Column" Value="{Binding Path=ColumnIndex}"/> 31 <Setter Property="Grid.Row" Value="{Binding Path=RowIndex}"/> 32 </Style> 33 </ItemsControl.ItemContainerStyle> 34 <ItemsControl.ItemTemplate> 35 <DataTemplate> 36 <中略> 37 </DataTemplate> 38 </ItemsControl.ItemTemplate> 39 </ItemsControl>
試したこと
座標に関しては下記で取得できていると思うのですが
e.GetPosition(itemsControl)
上記座標を利用してRowIndex,ColumnIndexを取得できないかと試しております。
VisualTreeHelper.HitTest,
Grid.GetColumn,対象GridのInputHitTest等試してみたのですが
項目が無いため、取得できない状態です。
補足情報(FW/ツールのバージョンなど)
.NetFramework4.0
VB.NET
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/24 08:04