我知道我做到了并且有效。现在,我正在做同样的事情而事实并非如此。我错过了什么? 我创建了一个新的测试解决方案并添加了以下代码:
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并看到一个有一列和一行的网格(如预期的那样),但该行是空的!我期待“HEllo”在那里。 我觉得有一些基本的东西,但无法弄清楚是什么。今天整天让我疯狂!
答案 0 :(得分:1)
我会在这里做两件事:
公开TestClass
(这可能会解决问题):
public class TestClass
{
public String TestProperty { get; set; }
}
静态绑定datagrid:
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>