私もこの質問に対する答えを探していました。これはかなり良い解決策です:
DataGrid のプロパティ「OnAutoGeneratingColumn」を次のようにバインドします (XAML は 100% 完成していないことに注意してください)。
<DataGrid AutoGeneratingColumn="OnAutoGeneratingColumn" />
そしてあなたのコードビハインドで:
private void OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
PropertyDescriptor propertyDescriptor = (PropertyDescriptor)e.PropertyDescriptor;
e.Column.Header = propertyDescriptor.DisplayName;
if (propertyDescriptor.DisplayName == "IsInDesignMode")
{
e.Cancel = true;
}
}
"e.Cancel = true;" 現在の列が生成されないようにします。これにより、DataGrid から列を簡単に除外できます。