2011-12-15 146 views
0

我知道我做了它,它工作。現在我正在做同樣的事情,但事實並非如此。我錯過了什麼? 我創建了一個新的測試解決方案,並添加以下代碼:將數據網格綁定到Silverlight中的對象集合

XAML:

<Grid x:Name="LayoutRoot" Background="White"> 
     <data:DataGrid AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" Margin="98,31,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="200"> 
      <data:DataGrid.Columns> 
       <data:DataGridTextColumn Binding="{Binding TestProperty}" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" x:Name="d" /> 
      </data:DataGrid.Columns> 
     </data:DataGrid> 
    </Grid> 

C#:

namespace SilverlightApplication1 
    { 
     public partial class MainPage : UserControl 
     { 
      public MainPage() 
      { 
       InitializeComponent();    
       dataGrid1.ItemsSource = null; 
       List<TestClass> lst = new List<TestClass>(); 
       TestClass tc = new TestClass(); 
       tc.TestProperty = "HEllo"; 
       lst.Add(tc); 
       dataGrid1.ItemsSource = lst; 
      } 
     } 
     class TestClass 
     { 
      public String TestProperty { get; set; } 
     } 
    } 

有字面上罷了。我按F5,看到一列一行的網格(如預期的那樣),但是這一行是空的!我希望那裏有「你好」。 我覺得有一些基本的東西,但無法弄清楚什麼。今天讓我瘋狂一整天!

+0

沒有明顯的錯誤到目前爲止您發佈的內容,您需要發佈更多內容。 – slugster

回答

1

我會在這裏做兩件事情:

TestClass公共(這可能會解決這個問題):

public class TestClass 
{ 
    public String TestProperty { get; set; } 
} 

靜態綁定的數據網格:

public MainPage() 
{ 
    InitializeComponent(); 

    DataContext = this;   

    MyItems = ... create the list ... 
} 

public ObservableCollection<TestClass> MyItems { get; set; } 



<Grid x:Name="LayoutRoot" Background="White"> 
    <data:DataGrid ItemsSource="{Binding MyItems}" ...etc... Name="dataGrid1"> 
     <data:DataGrid.Columns> 
      <data:DataGridTextColumn Binding="{Binding TestProperty}" Width="Auto" x:Name="d" /> 
     </data:DataGrid.Columns> 
    </data:DataGrid> 
</Grid> 
+0

是的!謝謝!我知道我記得有關公衆的一些事情,但認爲這是需要公開的屬性。完全忘了一堂課也可以公開。 – taralex

相關問題