如何使Windows社区工具包数据网格在WinUI3桌面应用程序可编辑?



我在WinUI3桌面应用程序中使用Windows Community Toolkit数据网格。它可以工作,但我不能使它在适当的地方编辑,虽然在文档中他们提到它应该工作。

<controls:DataGrid FrozenColumnCount="3" AutoGenerateColumns="False" IsReadOnly="False"
SelectionMode="Single"  ItemsSource="{Binding items}" >
<controls:DataGrid.Columns>
...
</controls:DataGrid.Columns>
</controls:DataGrid>

,

private ObservableCollection<EditableRow> _items = new();
public ObservableCollection<EditableRow> items
{
get => _items;
set
{
SetProperty(ref _items, value, true);
OnPropertyChanged(nameof(items));
}
}

EditableRow实现IEditableObject接口。我认为这是一个有约束力的问题,这里有什么问题吗?

列默认是可编辑的(IsReadOnly=false)。这在我的示例项目中有效。

<controls:DataGrid
x:Name="DataGridControl"
AutoGenerateColumns="False"
IsReadOnly="False"
ItemsSource="{x:Bind Items, Mode=OneWay}"
SelectionMode="Single">
<controls:DataGrid.Columns>
<controls:DataGridTextColumn
Binding="{Binding Id}"
IsReadOnly="True" />
<controls:DataGridTextColumn Binding="{Binding Title}" />
</controls:DataGrid.Columns>
</controls:DataGrid>

最新更新