2011-12-18 31 views
0

如何获取我所做的基本类并在WPF列表中提取它的属性?我已经尝试玩itemssource属性,但似乎没有为我工作。简单地绑定到WPF应用程序中的类

Public Class PageContent 
    Public StartDate As DateTime 
    Public Header As String 
    Public Content As String 
End Class 

<ListView Name="grid_PageContentList" > 
    <ListView.View> 
     <GridView> 
      <GridViewColumn DisplayMemberBinding="{Binding StartDate}" Width="50"></GridViewColumn> 
      <GridViewColumn DisplayMemberBinding="{Binding Header}" Width="50"></GridViewColumn> 
      <GridViewColumn DisplayMemberBinding="{Binding Content}" Width="50"></GridViewColumn> 
     </GridView> 
    </ListView.View> 
</ListView> 
+1

请向我们显示您的代码。 – SLaks 2011-12-18 03:17:10

+0

你已经在看它。有一个对象,它被绑定到列表中,现在我需要获取列表以从集合中的异议中提取值。 – Middletone 2011-12-18 03:17:49

+0

什么/你在哪里绑定到列表? – SLaks 2011-12-18 03:18:51

回答

2

不能直接绑定到领域,则需要改用属性:

Public Class PageContent 
    Public Property StartDate As DateTime 
    Public Property Header As String 
    Public Property Content As String 
End Class 

而且你需要确保你已经设置你DataContext。在您的XAML

Class MainWindow 

    Public Sub New() 

     InitializeComponent() 

    End Sub 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Loaded 
     MyData = New List(Of PageContent) 
     Dim pc As New PageContent 
     pc.Header = "AAAAAAAA" 
     pc.StartDate = Now 
     MyData.Add(pc) 

     pc = New PageContent 
     pc.Header = "BBBBBB" 
     pc.StartDate = Now.AddMinutes(1) 
     MyData.Add(pc) 


     DataContext = Me 
    End Sub 


    Public Property MyData() As List(Of PageContent) 

End Class 

并设置ItemsSource:如果你只是一个简单的形式背后的办法一个代码,然后把这个构造函数或Loaded处理

<ListView Name="grid_PageContentList" ItemsSource="{Binding MyData}" > 
     <ListView.View> 
      <GridView> 
       <GridViewColumn DisplayMemberBinding="{Binding StartDate}" Width="50"></GridViewColumn> 
       <GridViewColumn DisplayMemberBinding="{Binding Header}" Width="50"></GridViewColumn> 
       <GridViewColumn DisplayMemberBinding="{Binding Content}" Width="50"></GridViewColumn> 
      </GridView> 
     </ListView.View> 
    </ListView> 
+0

事实证明,您所需要的只是在您的基地拥有属性类。无需指定itemssource。我应该首先想到它,因为它与winforms和asp.net gridviews是一样的。 – Middletone 2011-12-18 18:46:59

0

你需要做的是一个具有INPC或DependencyProperty的ObservableCollection。不要仅仅像这样绑定常规属性,因为您可能看不到数据。