私のクラスであるKDataGridを使ってDataGridをオーバーライドしました(私たちの目的のためにいくつかの機能が必要でした)。空のItemsSourceに対してのみDataGridに空の読み取り専用行を表示するにはどうすればよいですか?
public class KDataGrid : System.Windows.Controls.DataGrid { *** }
任意のレコードタイプ(ジェネリックタイプ)のコレクションで使用できます。簡単KDataGridと
例XAML:
<components:KDataGrid
CanUserAddRows="False"
IsReadOnly="True"
ItemsSource="{Binding Path=SomeCollection}">
<DataGrid.Columns>
<DataGridTextColumn
Header="ID"
Binding="{Binding Id}"
Width="50"/>
<DataGridTextColumn
Header="Code"
Binding="{Binding Code}"
Width="130"/>
</DataGrid.Columns>
</components:KDataGrid>
ビューモデルが含ま:
public class SomeRecord: BaseRecord
{
public long ID { get; set; }
public string Code { get; set; }
}
public List<SomeRecord> SomeCollection { get; }
KDataGrid(データグリッド)が読み取り専用です。そのため、DataGridの下部にある空白の行が表示されません。
コレクションSomeCollectionが空の場合、DataGridにフォーカスを設定することはできません(たとえば、新しいレコードを追加する場合など)。
これを修正する最も簡単な方法は、空の行(フォーカス可能)を表示することです。
しかし、コレクションに空の行を表示する必要のない少なくとも1つの行が含まれている場合。
どうすればいいですか?