[英]WPF Datagrid edit cell on mouse double click
在WPF中,我添加了一個DataGrid:
<DataGrid x:Name="dataGridProdotti" HorizontalAlignment="Left" Margin="10,56,0,0" VerticalAlignment="Top" Height="250" Width="426" SelectionChanged="dataGridProdotti_SelectionChanged" IsReadOnly="False"/>
與財產
IsReadOnly="False"
然后我做:
dataGridProdotti.ItemsSource = myList
為什么我雙擊一個單元格,該單元格不進入編輯模式?
您需要在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>
並且也不要將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; }
}
現在DataGrid是可編輯的。
我沒有看到你的數據網格中有任何列,
只需將DataGrid控件拖放到視圖中,然后將ItemsSource綁定到數據對象的集合即可。 DataGrid提供了一個名為AutoGenerateColumns的功能,可根據數據對象的公共屬性自動生成列
或者,您可以通過將AutoGenerateColumns屬性設置為False來手動定義列。 在這種情況下,您必須在數據網格的Columns集合中定義列。
如果要編輯datagrid單元格,則應定義datatemplateColumn,
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.