2011-12-30 53 views
1

我正在开发一个小型应用程序,它需要将用户定义的值添加到网格中。问题是,即使他们认为他们添加正确(我检查了调试器),他们没有正确显示在网格中。将行添加到Silverlight 4中的DataGrid中

屏幕截图:

SCREEN SHOT

下面是代码:

XAML:

public ObservableCollection<DefaultValue> defaultValues; 

//Class: 
public class DefaultValue 
{ 
    public string DefVal; 

    public DefaultValue(string val) 
    { 
     this.DefVal = val; 
    } 
} 

初始化页面的构造函数:

<sdk:DataGrid x:Name="defaultValueDataGrid" AutoGenerateColumns="False" Height="150" Margin="0,0,10,0"> 
    <sdk:DataGrid.Columns> 
     <sdk:DataGridTextColumn x:Name="valColumn" Binding="{Binding DefVal, Mode=OneWay}" IsReadOnly="True" Header="SomeHeader" Width="*" /> 
    </sdk:DataGrid.Columns> 
</sdk:DataGrid> 

的ItemSource收集和容器类的定义:

this.defaultValues = new ObservableCollection<DefaultValue>(); 
    this.defaultValueDataGrid.ItemsSource = this.defaultValues; 

最后一点功能,增加值:

private void AddNewDefaultValueBtn_Click(object sender, RoutedEventArgs e) 
{ 
    if (!string.IsNullOrEmpty(this.newDefaultValueTxtBx.Text)) 
    { 
     this.defaultValues.Add(new DefaultValue(this.newDefaultValueTxtBx.Text)); 
     this.defaultValueDataGrid.ItemsSource = this.defaultValues; 
    } 
} 

没什么特别的,对不对?对,但它不起作用,我会欣赏提示和帮助。 Ps。我已经使用this教程。

回答

2

变化

public string DefVal;

public string DefVal {get;set;}

绑定不上它的工作原理上的性能

,你并不需要重置的项目成员变量工作源内按钮点击事件

this.defaultValueDataGrid.ItemsSource = this.defaultValues;

变化观察的集合将直接改变DataGrid的

+0

谢谢,这解决了这一问题。重新尝试是尝试不同方法时剩下的一部分。队友的欢呼声 – neurotix 2011-12-30 09:57:24

相关问题