2016-07-23 14 views
0

listViewでどの列のヘッダーがクリックされたかを調べようとしています。listView列のヒットテストメソッドからDataContextを取得する方法C#WPF

イベントメソッドpreviewMouseLeftButtonUpが追加されました。以下のような実装を持って

<ListView x:Name="offers_listView" Margin="10,10,10,227" Height="500" HorizontalContentAlignment="Center" PreviewMouseLeftButtonUp="offers_listView_PreviewMouseLeftButtonUp"> 

private void offers_listView_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
    { 
     var point = Mouse.GetPosition(offers_listView); 

     var hit = offers_listView.InputHitTest(point); 

     offers_listView.IsHitTestVisible = true; 


     //if(hit.DataContext == "") 
     //{ 

     //} 

    } 

それでは、私は期待したいことは、列の名前であり、デバッグモードでは、私はそれを発見した:

image

問題は、コーディングモードでは、以下の画面で確認できるようにプロパティDataContextを取得できないことです。

enter image description here

私の質問は、この情報を別の方法で取得する方法、またはこの瞬間に役立つDataContextプロパティをどのようにアクティブにすることができますか?

事前のおかげで、その打たれたUIElementは、デバッガがそれを認識するため

+0

あなたが取得、その後のListViewItemにキャストし、その 'DataContext'を試してみましたか? – ViVi

答えて

2

hitFrameworkElementから派生しみなします。 DataContextにアクセスする場合は、hitFrameWorkElementにキャストする必要があります。

例:

object dataContext = (hit as FrameworkElement).DataContext; 
関連する問題