【问题标题】:Get selected Item details from a data binded List in C#从 C# 中的数据绑定列表中获取所选项目的详细信息
【发布时间】:2018-06-20 15:57:45
【问题描述】:

我必须从之前绑定的 List 中访问 selectedItem 的详细信息。当我显示 SelectedItem 时,我得到的是 datacontextName.TableName。如何访问所选项目的值?

我的 XAML 代码是:

<TabItem Header="Playlist">
    <ListView Name="RecList" SelectionMode="Single" SelectionChanged="RecList_SelectionChanged"  >
        <!--2 data from table tblMusic, Name and Playtime, is binded-->
        <ListView.View>
             <GridView>
                 <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
                 <GridViewColumn Header="Time" DisplayMemberBinding="{Binding Playtime}"/>
             </GridView>
        </ListView.View>
    </ListView>
</TabItem>

C# 的功能是:

public MainWindow()
{
MusicDataClassDataContext dc = new MusicDataClassDataContext(Properties.Settings.Default.EliseDBConnectionString);
 //binding of the List.
    if (dc.DatabaseExists())
     {
         RecList.ItemsSource = dc.tblMusics.ToList();
     }
}

private void RecList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    //I tried both SelectedItem and SelectedValue
    MessageBox.Show(RecList.SelectedValue.ToString());
}

是否可以使用此 List 从绑定表中获取其他详细信息?

【问题讨论】:

  • 列表的定义在哪里?请发布所有必要的代码。
  • tblMusics的数据类型是什么?
  • 为什么不使用 selectedItem 绑定到在代码中定义的对象?
  • 将 SelectedItem 转换为适当的项目类型。然后访问项目的属性。 ToString 不会神奇地为您做到这一点。

标签: c# wpf list data-binding selecteditem


【解决方案1】:

这是一个选角问题。这对我来说很好:

应将 selectedItem 转换为类型 :tblMusic(表的数据类型)并将其存储到变量中。该变量可用于访问之前绑定的表的所有详细信息。

tblMusic Mus = (tblMusic)RecList.SelectedItem;
MessageBox.Show(Mus.Name);

这给出了被绑定的表的详细信息。

【讨论】:

    猜你喜欢
    • 2017-07-12
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多