Tom*_*Tom 4 c# wpf datagrid wpfdatagrid
在WPF中,我添加了一个DataGrid:
<DataGrid x:Name="dataGridProdotti" HorizontalAlignment="Left" Margin="10,56,0,0" VerticalAlignment="Top" Height="250" Width="426" SelectionChanged="dataGridProdotti_SelectionChanged" IsReadOnly="False"/>
Run Code Online (Sandbox Code Playgroud)
与财产
IsReadOnly="False"
Run Code Online (Sandbox Code Playgroud)
然后我做:
dataGridProdotti.ItemsSource = myList
Run Code Online (Sandbox Code Playgroud)
为什么我双击一个单元格,该单元格不进入编辑模式?
您需要在DataGrid中添加DataColumns
<DataGrid x:Name="dataGridProdotti"
HorizontalAlignment="Left"
ItemsSource="{Binding Values}"
Margin="10,10,0,192" Width="481" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn IsReadOnly="False" Binding="{Binding Path=Name}" Header="List" />
</DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
并且也不要list<string>直接绑定到DataGrid的数据源,创建一个自定义类,然后绑定如下.
private List<Country> value = new List<Country>();
public MainWindow()
{
InitializeComponent();
this.Values.Add(new Country{ Name = "America"});
this.Values.Add(new Country{Name = "Africa"});
this.Values.Add(new Country{Name = "India"});
}
public List<Country> Values
{
get
{
return this.value;
}
set
{
this.value = value;
}
}
}
public class Country
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在DataGrid是可编辑的.
我没有看到你的数据网格中有任何列,
只需将 DataGrid 控件拖放到视图中并将 ItemsSource 绑定到数据对象集合即可完成。DataGrid 提供了一个称为 AutoGenerateColumns 的功能,可以根据数据对象的公共属性自动生成列
或者,您可以通过将 AutoGenerateColumns 属性设置为 False 来手动定义列。在这种情况下,您必须在数据网格的 Columns 集合中定义列。
如果你想编辑你的数据网格单元格,你应该定义一个数据模板列,
<sdk:DataGridTemplateColumn Header="Yourheadername" Width="150" CanUserResize="False" CanUserReorder="False">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Margin="2" VerticalAlignment="Center" x:Name="txtblock" Text="{Binding Test,Mode=TwoWay}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9906 次 |
| 最近记录: |