Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ListView c中获取所选值#_C#_Wpf_Xaml_Listview - Fatal编程技术网

C# 在ListView c中获取所选值#

C# 在ListView c中获取所选值#,c#,wpf,xaml,listview,C#,Wpf,Xaml,Listview,我只想在我的ListView中获取所选项目 这是XAML: <TabItem Header="Musique" Background="#1874CD" BorderBrush="#68838B"> <ListView x:Name="ListM" Width="Auto" Background="#D1EEEE" ItemsSource="{Binding Path=MediaCollection}" Margin="-8,-0.877,-1,-2.925" Sele

我只想在我的ListView中获取所选项目

这是XAML:

<TabItem Header="Musique" Background="#1874CD" BorderBrush="#68838B">
    <ListView x:Name="ListM" Width="Auto" Background="#D1EEEE" ItemsSource="{Binding Path=MediaCollection}" Margin="-8,-0.877,-1,-2.925" SelectionChanged="ListM_SelectionChanged">
        <ListView.View>
            <GridView AllowsColumnReorder="True" >
                <GridViewColumn Header="" Width="Auto" >
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <Image Name="IconImage" Source="{Binding IconUri}" Panel.ZIndex="2" Width="15" Height="15"></Image>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
                <GridViewColumn DisplayMemberBinding="{Binding Title}" Header="Titre" Width="auto" />
                <GridViewColumn DisplayMemberBinding="{Binding Composer}" Header="Artiste" Width="70" />
                <GridViewColumn DisplayMemberBinding="{Binding Length}" Header="Durée" Width="50" />
                <GridViewColumn DisplayMemberBinding="{Binding Album}" Header="Album" Width="70" />
            </GridView>
        </ListView.View>
    </ListView>

当我在列表中选择一个项目时,我需要获得这些详细信息(
Title
Length
,…)。我已经试过了,但是有很多问题,它仍然不起作用。

只需将
SelectedItem
转换为您的类型:

private void ListM_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
  var listgrid = (ListGrid)ListM.SelectedItem;
}
但你似乎在混合一些东西。您正在使用数据绑定(
ItemsSource
),但也可以手动添加项。 最好只使用数据绑定,将项目添加到ViewModel中的
MediaCollection
,并将
SelectedItem
绑定到ViewModel中的另一个属性:

在XAML中:

SelectedItem="{Binding SelectedItem}"

只需将
SelectedItem
转换为您的类型:

private void ListM_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
  var listgrid = (ListGrid)ListM.SelectedItem;
}
但你似乎在混合一些东西。您正在使用数据绑定(
ItemsSource
),但也可以手动添加项。 最好只使用数据绑定,将项目添加到ViewModel中的
MediaCollection
,并将
SelectedItem
绑定到ViewModel中的另一个属性:

在XAML中:

SelectedItem="{Binding SelectedItem}"
使用SelectedItems:

SelectedItems是所选行的集合

如果您只想获得标题:

string age = ListM.SelectedItems[0].SubItems[0].Text;
如果要获取所有详细信息,请执行以下操作:

ListM.SelectedItems[0]返回一个对象。您首先需要将其强制转换为其特定类型,然后才能访问其成员。 创建媒体类(标题、作曲家…),然后:

不要忘记添加事件:

ListM.DoubleClick += getSelectedIteminListView;
使用SelectedItems:

SelectedItems是所选行的集合

如果您只想获得标题:

string age = ListM.SelectedItems[0].SubItems[0].Text;
如果要获取所有详细信息,请执行以下操作:

ListM.SelectedItems[0]返回一个对象。您首先需要将其强制转换为其特定类型,然后才能访问其成员。 创建媒体类(标题、作曲家…),然后:

不要忘记添加事件:

ListM.DoubleClick += getSelectedIteminListView;

我终于听了@M.REJEB

它适用于这个类:


我终于听了@M.REJEB

它适用于这个类:


谢谢你!但是,我需要在哪里添加事件?@JimmyJames您可以将其添加到窗体的构造函数中。谢谢!但是,我需要在哪里添加事件?@JimmyJames您可以将其添加到窗体的构造函数中。