web-dev-qa-db-ja.com

ObservableCollection <T>にバインドするときにDataGridの空白行を削除する方法は?

私はこれでここでナッツを得ています:

ObservableCollection<Employee> list = new ObservableCollection<Employee>();
dgEmployees.ItemsSource = list;

リスト変数をデバッグするとき、それは空です(list.Count = 0)が、それをDataGrid(WPFToolkit)にバインドすると、空白行が表示されます。

イミディエイトウィンドウで、dgEmployees.Itemsの場合は次のように表示されます。

dgEmployees.Items[0]
{NewItemPlaceholder}

そして

dgEmployees.Items[0].GetType()
{Name = "NamedObject" FullName = "MS.Internal.NamedObject"}
[System.RuntimeType]: {Name = "NamedObject" FullName = "MS.Internal.NamedObject"}

このDatagridをTabControlに配置した後に発生するようですが、それが何かと関係があるかどうかはわかりません。

この空白行を削除する方法を知っている人はいますか?

41
Junior M

私はそれを持っている

datagrid XAMLで、属性を配置します。

IsReadOnly="True"
20
Junior M

WPF 4.0バージョンのDataGridでも同じ問題が持続し、ObservableCollection ItemsSourceに対して自動的に表示される新しい行が原因で発生します。 IsReadOnlyをTrueに設定すると、過激なIMHOになります。
その動作が必要ない場合でもCanUserAddRowsプロパティを無効にすることで解決しましたが、セルを変更する必要があります。

CanUserAddRows = "False"

90
Pablonete

CanUserAddRows="False"およびIsReadOnly="True"両方の組み合わせは、追加の不便を確実にするために優れています。

3
Sawarkar vikas