2011-12-30 62 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

相關問題