【问题标题】:LongListSelector selecteditemLongListSelector 选定项
【发布时间】:2015-03-09 13:58:09
【问题描述】:

我在 .xaml 中有一个 LongListSelector,当源由 DataContext 使用我的 SQL Server CE 数据库中的单个表填充时,我可以通过绑定到 ItemSource 来填充它,如下所示:

    Dim row = (From rows In db.Hub
               Order By rows.HubID Descending
               Select rows).ToList()

    Me.MainLongListSelector.ItemsSource = row

因此,我能够获得所选项目的 ID,如下所示:

HubID = CType(MainLongListSelector.SelectedItem, Hub).HubID

我还可以绑定到“查询”数据源,如下所示:

    Dim row = (From ac In db.Activity
                Join at In db.ActivityType On ac.ActivityTypeID Equals at.ActivityTypeID
                Select New With {.ID = ac.ActivityID,
                                 .Title = ac.Activity1}).ToList()
              Me.MainLongListSelector.ItemsSource = row

但是,由于这不是指DataContext中的特定表,所以我无法使用上面的代码获取ID,即:

Dim ActID = CType(MainLongListSelector.SelectedItem, Activity).ActivityID '- returns nothing

在这种情况下我应该如何获取 selectedItem 的值?

注意:我创建了匿名字段(.ID 和 .Title),因为这些是我在 xaml 中绑定的名称,因此无需编写额外代码即可填充 LongListSelected。

谢谢

【问题讨论】:

    标签: vb.net windows-phone-8 linq-to-sql sql-server-ce longlistselector


    【解决方案1】:

    呼!!

    我发现了两件事:

    1. 此 HubID = CType(MainLongListSelector.SelectedItem, Hub).HubID 正在调用一个列表(属于 DataContext),而在上面的第二个场景中,我使用的是一个列表(属于匿名)。所以我搜索了 List (Of Anonymous) 并且 this 出现了!
    2. 我现在知道我可以为 List (Of Anonymous) 创建一个类并正确命名它的属性,从而使其在其方法之外可用,就像我上面的“查询”问题一样。

    所以答案是我为我的匿名列表创建了类,并声明了它的属性

    Public Class AnonList
    
    Private _id As Integer
    Public Property ID() As Integer
        Get
            Return _id
        End Get
        Set(ByVal value As Integer)
            _id = value
        End Set
    End Property
    
    Private _title As String
    Public Property Title() As String
        Get
            Return _title
        End Get
        Set(ByVal value As String)
            _title = value
        End Set
    End Property
    
    Private _desc As String
    Public Property Desc() As String
        Get
            Return _desc
        End Get
        Set(ByVal value As String)
            _desc = value
        End Set
    End Property
    
    End Class
    

    因此将它们分配给 ItemSource 值,

    Select New AnonList With {.ID = ac.ActivityID,
    

    因此能够根据需要获取 SelectedItem 值:

    ActivityID = CType(MainLongListSelector.SelectedItem, AnonList).ID
    

    下定决心要弄清楚这一点!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 2012-12-02
      • 2012-12-22
      相关资源
      最近更新 更多