2014-09-22 34 views
2

我想從點擊的ListViews行中檢索所有數據。 也可以隱藏該id列。我嘗試使用帶有單擊事件的命令,並將該ID字段 傳入命令參數表中,但沒有成功。還尋找其他方法,但沒有。僅供參考,我需要此功能才能將每個點擊用戶的詳細信息顯示在其他listView中,以便這些數據更容易查看其他用戶。如何檢索點擊的列表視圖行數據並隱藏ID列

結論:需要點擊行數據,如果可能的話,也隱藏該id列。

XAML代碼:

<ListView x:Name="lstUsers" ItemsSource="{Binding UserList,UpdateSourceTrigger=PropertyChanged}"> 
<ListView.View> 
    <GridView x:Name="grdUsers"> 
     <GridViewColumn Header="Hidden_Id" DisplayMemberBinding="{Binding Id}"/> 
     <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/> 
     <GridViewColumn Header="Surname" DisplayMemberBinding="{Binding Surname}"/> 
     <GridViewColumn Header="Age" DisplayMemberBinding="{Binding Age}"/> 
    </GridView> 
</ListView.View> 
</ListView> 

我的視圖模型內放置使用者名單。
任何一種優雅的方法都可以得到單擊的行數據,謝謝。

編輯:

我看着鏈接@BradleyDotNET給現在的代碼如下所示。

<ListView x:Name="lBoxUser" ItemsSource="{Binding UserList, UpdateSourceTrigger=PropertyChanged}" Width="300"   
        IsSynchronizedWithCurrentItem="True" 
        Visibility="Visible" SelectionMode="Single" 
        SelectedValuePath="Id" 
        SelectionChanged="lBoxUser_SelectionChanged"> 
        //this part hasn't changed 
</ListView> 

SelectedValuePath:將結合的用戶列表對象的一個​​屬性。在我的情況下,它是'Id'。
SelectionChanged:只是添加事件處理程序,該事件處理程序將在選擇上執行更改的事件並獲取所有選定的行數據。我知道這對用戶MVVM模式會更優雅,但命令對我來說不起作用。

還要顯示'SelectedValue'。

<TextBlock Text="{Binding SelectedValue, ElementName=lBoxUser}"/> 

EDIT2:

我發現了更簡單的方法來做到這一點。

<ListView.SelectedItem> 
    <Binding Path="UserProperty" UpdateSourceTrigger="PropertyChanged"/> 
</ListView.SelectedItem> 

剛剛添加我的ViewModel中的User類屬性,這就是所有。它獲取所有選定的用戶數據。現在它也算作MVVM模式。

回答

1

你很好!

爲了擺脫「ID」列,它非常容易;只要刪除它!

<ListView x:Name="lstUsers" ItemsSource="{Binding UserList,UpdateSourceTrigger=PropertyChanged}"> 
<ListView.View> 
    <GridView x:Name="grdUsers"> 
     <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/> 
     <GridViewColumn Header="Surname" DisplayMemberBinding="{Binding Surname}"/> 
     <GridViewColumn Header="Age" DisplayMemberBinding="{Binding Age}"/> 
    </GridView> 
</ListView.View> 
</ListView> 

要獲取當前所選項目的信息,看看ListViewSelectedValueMSDN)屬性將保持當前所選項目的綁定對象。

+0

感謝您的回覆,我會研究一下您給我的鏈接@BradleyDotNET,並告知您它是否有效。 – Edgar 2014-09-22 21:23:47