我有这样一门课,
public class Class1
{
public bool IsSelected { get; set; } = false;
public List<BaseInfo> baseInfos { get; set; }
}和一个数据
<DataGrid
hc:DataGridAttach.CanUnselectAllWithBlankArea="True"
AutoGenerateColumns="True"
AutoGeneratingColumn="DataGrid_AutoGeneratingColumn"
HeadersVisibility="All"
IsReadOnly="True"
ItemsSource="{Binding Class1}"
RowHeaderWidth="60">
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=DataGridRow}}" />
</DataTemplate>
</DataGrid.RowHeaderTemplate>
</DataGrid>

实际上,我不能这样做--如何设置baseInfos设置AutoGenerateColumns="True“自动生成的列,谢谢!
发布于 2022-02-17 04:04:18
ItemsSource绑定应该是一个列表,而不是一个类,而IsSelected应该是BaseInfo中的一个属性,而不是它之外的一个属性!!不明白为什么你会有Class1,因为它对任何事情都没有帮助!!
因此,将public bool IsSelected { get; set; } = false;添加到类BaseInfo中。就像这样:
public class BaseInfo {
public bool IsSelected { get; set; } = false;
public string Name { get; set; }
public string SOMETHING { get; set; }
}发布于 2022-02-17 04:14:59
属性将自动为您创建空列,
但是,如果要创建新行,则需要创建Class1列表并将其绑定到ItemSource
.cs:
public List<Class1> ClassList
{
get
{
return classList?? (classList= new List<Class1>());
}
set
{
classList= value;
}
}
List<Class1> classList;增加一些项目:
ClassList.Add(new Class1
{
IsSelected = true,
});
ClassList.Add(new Class1
{
IsSelected = true,
});xaml:
<DataGrid ItemsSource="{Binding ClassList}">
</DataGrid>https://stackoverflow.com/questions/71151803
复制相似问题