2012-10-15 119 views
0

我需要允許用戶能夠從DataGrid(Silverlight SDK)複製單元格內容。Silverlight複製單元格內容

目前Datagrid通過後面的代碼綁定到數據。

記錄被加載到的ObservableCollection,然後到PagedCollectionView並設置爲的ItemsSource到Dataggrid終於

我現在面臨的問題是,當我改變

IsReadOnly =「假」

爲Datagrid用戶獲取複製單元格的內容。但是如果他們錯誤地對單元格進行了小改動,那麼這些更改會自動提交,這是上升的異常,因爲這些記錄是隻讀的。

所以我想實現的是讓用戶複製單元格內容,但仍然保持它只讀。

我不介意在客戶端緩存的記錄變化,但只是不希望允許提交到服務的變化和上升不必要的例外..

乾杯

回答

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> 

然後,您應該可以複製出單元格。

+0

這是相當不錯的。是否有可能將此應用於所有列(文本)作爲附加模板而不是每個列的數據網格? – Searching

相關問題