0

我需要允许用户能够从 DataGrid(Silverlight SDK)复制单元格内容。

目前,Datagrid 通过代码绑定到数据。

记录被加载到 ObservableCollection,然后到 PagedCollectionView,最后被设置为 Dataggrid 的 ItemsSource

我面临的问题是当我改变

IsReadOnly = "假"

对于 Datagrid,用户可以复制单元格的内容。但是,如果他们错误地对单元格进行了任何小的更改,则更改会自动提交,这是上升的异常,因为记录是只读的。

所以我想要实现的只是让用户能够复制单元格内容,但仍将其保持为只读。

我不介意缓存记录是否在客户端发生更改,但只是不想允许将更改提交给服务并引发不必要的异常..

干杯

4

1 回答 1

1

您可以使用包含只读文本框的 sdk:DataGridTemplateColumn 为每列创建一个模板。

<sdk:DataGrid>
  <sdk:DataGrid.Columns>
    <sdk:DataGridTemplateColumn Header="My Header" Width="80">
      <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
           <TextBox BorderBrush="Transparent" Text="{Binding Path=MyProperty}" Height="25" HorizontalAlignment="Stretch" IsReadOnly="True"/>
        </DataTemplate>
      </sdk:DataGridTemplateColumn.CellTemplate>
    </sdk:DataGridTemplateColumn>
  </sdk:DataGrid.Columns>
</sdk:DataGrid>

然后,您应该能够从单元格中复制出来。

于 2012-10-15T23:19:00.620 回答