Silverlight复制单元格内容

时间:2012-10-15 22:27:15

标签: silverlight silverlight-5.0

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

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

将记录加载到ObservableCollection中,然后加载到PagedCollectionView并最终设置为ItemsSource到Dataggrid

我面临的问题是当我改变时

  

IsReadOnly =“false”

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

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

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

干杯

1 个答案:

答案 0 :(得分: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>

然后你应该可以复制出细胞了。