2014-06-30 54 views
0

我有一個WPF數據網格,並且默認情況下我已將編輯模式設置爲關閉。 我在數據網格上有一個更新圖標,當我點擊每一行上的更新圖標時,我想要將編輯模式設置爲打開,並且數據網格的第一個單元格應該被集中。Datagrid基於數據網格中的單元格點擊設置編輯模式

<DataGrid Grid.Row="2" Name="dgList" Margin="0,10,0,0" ItemsSource="{Binding List,Mode=TwoWay}" RowHeight="40" ColumnWidth="*" 
          AutoGenerateColumns="False" CanUserAddRows="False" MouseLeftButtonDown="dgList_MouseLeftButtonDown" 
       PreviewMouseLeftButtonDown="dgList_PreviewMouseLeftButtonDown" > 
        <DataGrid.Columns> 
         <DataGridTemplateColumn Header="Image" MinWidth="250" IsReadOnly="True"> 
          <DataGridTemplateColumn.CellTemplate> 
           <DataTemplate> 
            <Image Source="{Binding Path=Image, Converter={StaticResource ucconvertToImage}}"/> 
           </DataTemplate> 
          </DataGridTemplateColumn.CellTemplate> 
         </DataGridTemplateColumn> 
         <DataGridTextColumn Header="Name" MinWidth="250" Binding="{Binding Path=Name,Mode=TwoWay}" IsReadOnly="True"></DataGridTextColumn> 
         <DataGridCheckBoxColumn Header="Is Active" MinWidth="250" Binding="{Binding Path=IsActive}" IsReadOnly="True"></DataGridCheckBoxColumn> 
         <DataGridTemplateColumn Header="Update" MinWidth="50" MaxWidth="50" SortMemberPath="EditMode" IsReadOnly="False"> 
          <DataGridTemplateColumn.CellTemplate> 
           <DataTemplate> 
            <Image Source="Icons/Update.jpg"> 
             </Image> 
           </DataTemplate> 
          </DataGridTemplateColumn.CellTemplate> 
         </DataGridTemplateColumn> 
        </DataGrid.Columns> 
       </DataGrid> 

我想檢查我的更新圖標,首先檢查單擊如果是更新列,然後設置isreadonly爲真。 我使用下面的代碼來做到這一點,但是,我將發件人作爲整個數據網格而不是單元格。

private void dgList_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
     { 
      DataGridCell cell = sender as DataGridCell; 
      if (cell != null) 
      { 
       dgList.IsReadOnly = true; 
      } 
     } 

如何將數據網格屬性設置爲編輯模式爲一行,單擊該行上的更新圖標。

+0

你的問題是什麼呢?請縮小到具體問題。感謝和問候, –

回答

0

要設置DataGriddgList)的編輯/只讀模式下,你不需要單擊單元格:只是有一個單一的ChecBox(如命名爲chkEdit)的DataGrid外,並添加事件處理類似如下:

chkEdit.Click+=()=>{dgList.IsReadOnly = !(bool)chkEdit.IsChecked; }; 

問候,

+0

要求是在網格的每一行上都有一個更新圖標。 – user2480288

+0

那麼它可能應該是dgList.IsReadOnly = false;以便編輯。 RGDS, –

相關問題