2014-09-22 40 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

相关问题