下部のWPFデータグリッドの空の行


201

私は私のデータグリッドを使用してバインドします

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

なんらかの理由で下部に空の行が表示されます。グリッドのボタンやチェックボックスをクリックした後、空の行が追加される場合があります。

どうしてこれなの?そして、これをどのようにブロックしますか?

回答:


447

CanUserAddRowsDataGridでおそらくtrueに設定したように思えます。追加するだけ

CanUserAddRows="false"

XAMLに。


13
グリッドのプロパティのチェックボックスがオフになっている場合でも、コード行を明示的に追加して追加の行を非表示にする(またはチェックボックスを
オン

6
コードビハインドが必要ない場合は、CanUserAddRows = "False"属性を追加します。明示的にfalseに設定する必要があるWPFのバグのようです。
ZZZ

私はむしろ反対の問題を抱えています。空の行は作成されませんが、むしろそれが必要です。
Shimmy Weitzhandler

21

次の属性でも機能します。

IsReadOnly="true"

これは、CanUserAddRowsおよびCanUserDeleteRowsよりもうまく機能しました
RDV


3

ソースコードを使用してオンザフライでDataGridを作成する場合...

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

0

OPは空の行を削除する方法を尋ねていましたが、タイトルは特定されていません。この記事は、空の行を追加する方法を見つけようとしたときに私の検索に表示されました。私は、空の行が表示されるために、それを持っている必要がないだけで、それを発見したCanUserAddRows="True"が、ItemsSourceデフォルトコンストラクタを持っている必要がありますpublic MyClass () { }

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.