2011-12-30 7 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; 
    } 
} 

初期化:ItemSourceコレクションとコンテナクラスの

<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> 

定義:右、空想

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; 
    } 
} 

ナッシング:値を追加します

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

そして最後に機能?そうだけど、それはうまくいかず、私はヒントと助けに感謝します。 Ps。私はthisチュートリアルを使用しました。

それは性質

上で動作し、あなたがアイテムをリセットする必要はありませんメンバ変数では動作しませんバインディング

public string DefVal {get;set;}

答えて

2

変更

public string DefVal;

ソース内ボタンクリックイベント

監視可能なコレクションで

this.defaultValueDataGrid.ItemsSource = this.defaultValues;

変更は、直接データグリッドに問題を修正し

+0

おかげで、変更されます。リセッティングは、異なるアプローチを試みることから残っているものです。歓声メイト – neurotix

関連する問題