WPF 数据网格绑定字段
WPF Datagrid Binding field
我有这样一个class,
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" 自动生成的Columns 应该怎么做,
提前致谢!
ItemsSource 绑定应该是一个列表而不是单个 class,并且 IsSelected 应该是 BaseInfo 内部的 属性 而不是外部的东西!!
无法理解为什么你有 Class1
因为它对任何事情都没有帮助!!
所以将 public bool IsSelected { get; set; } = false;
添加到 class BaseInfo。类似的东西:
public class BaseInfo {
public bool IsSelected { get; set; } = false;
public string Name { get; set; }
public string SOMETHING { get; set; }
}
AutoGenerateColumns
属性会自动为你创建空列,
但是如果你想创建新行,你需要创建一个 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>
我有这样一个class,
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" 自动生成的Columns 应该怎么做, 提前致谢!
ItemsSource 绑定应该是一个列表而不是单个 class,并且 IsSelected 应该是 BaseInfo 内部的 属性 而不是外部的东西!!
无法理解为什么你有 Class1
因为它对任何事情都没有帮助!!
所以将 public bool IsSelected { get; set; } = false;
添加到 class BaseInfo。类似的东西:
public class BaseInfo {
public bool IsSelected { get; set; } = false;
public string Name { get; set; }
public string SOMETHING { get; set; }
}
AutoGenerateColumns
属性会自动为你创建空列,
但是如果你想创建新行,你需要创建一个 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>