2009-11-23 49 views
150

で私が一番下に空の行を取得するいくつかの理由WPFデータグリッドの空行下

//fill datagrid 
public DataTable GameData 
{ 
    get 
    { 
     DataSet ds = new DataSet(); 
     FileStream fs = new FileStream(IMDB.WebPage.Class.Config.XMLPath, 
     FileMode.Open, FileAccess.Read); 
     StreamReader reader = new StreamReader(fs, Encoding.Default); 
     ds.ReadXml(reader); 
     fs.Close(); 
     DataTable temp = ds.Tables[0]; 
     return ds.Tables[0]; 
    } 
} 

を使用して、私のデータグリッドをバインドします。グリッド内のいくつかのボタンやチェックボックスをクリックすると、空の行が追加されることがあります。

これはなぜですか?そして私はこれをどのようにブロックするのですか?

答えて

340

DataGridでCanUserAddRowsがtrueに設定されているような音がします。追加するだけで

CanUserAddRows="false" 

をXAMLに追加してください。

+9

偉大な、そのトリックをした!奇妙な理由は、これはデフォルトでは.. – WtFudgE

+0

短いと甘い:)チャームのように働いた! Thanks @ Tomi –

+8

グリッドのプロパティのチェックボックスをオフにしても、その行を明示的に追加して追加の行を非表示にする必要があります(チェックボックスをオンまたはオフにしてください)。 –

13

IEditableCollectionViewを実装しているバッキングコレクションがCanAddNewメソッドからtrueを返した場合、DataGridはこれを行うと想定します。

ここで良いの概要があります:Overview of the editing features in the WPF DataGrid

3

ソースコードをオンザフライあなたがデータグリッドを作成している場合は...

また、属性と連携
DataGrid grid = new DataGrid(); 

grid.CanUserAddRows = false; 

//... 
grid.AutoGenerateColumns = false; 
grid.Margin = new Thickness(10,20,10,10); 
grid.VerticalAlignment = VerticalAlignment.Top; 
grid.ItemsSource = //... and so on 
13

IsReadOnly="true" 
関連する問題