2013-02-11 45 views
6

रीडोनली डेटाग्रिड में एक कॉलम संपादन योग्य कैसे बनाएं?रीडोनली डेटाग्रिड में एक कॉलम संपादन योग्य कैसे बनाएं?

<DataGrid x:Name="dgLoadDtl" Height="315" Width="710" Grid.Row="0" 
        HorizontalAlignment="Left" VerticalAlignment="Bottom" 
        Style="{DynamicResource StyleDatagrid}" 
        IsReadOnly="true"> 

      <DataGrid.Columns>      

       <DataGridTextColumn Foreground="Black" Width="60" Header="Sctn" Binding="{Binding Sctn, Mode=TwoWay}" IsReadOnly="false" />      
       <DataGridTextColumn Foreground="Black" Width="140" Header="CustName" Binding="{Binding CustName, Mode=TwoWay}" /> 
       <DataGridTextColumn Foreground="Black" Width="140" Header="Address" Binding="{Binding Address1, Mode=TwoWay}" /> 
       <DataGridTextColumn Foreground="Black" Width="50" Header="Bulk or Bag" Binding="{Binding BulkorBag, Mode=TwoWay}" /> 
       <DataGridTextColumn Foreground="Black" Width="80" Header="ProdCode" Binding="{Binding ProdCode, Mode=TwoWay}" /> 
       <DataGridTextColumn Foreground="Black" Width="80" Header="MedCode" Binding="{Binding MedCode, Mode=TwoWay}" /> 

+6

आप को दूर करने के 'है IsReadyOnly =" true "' 'मुख्य DataGrid' से और प्रत्येक स्तंभ जो केवल पढ़ने के लिए आप जोड़ने के लिए के लिए 'IsReadOnly =" true "' like ' ' –

+0

/\ काम नहीं करता। – Kirka121

+0

इस की जाँच करें: http://stackoverflow.com/questions/4471934/can-i-specify-which-columns-are-editable-in-a-wpf-datagrid –

उत्तर

10

मैं एक नमूना है, जहां मैं एक ObservableCollection करने के लिए डेटा ग्रिड के ItemsSource बाध्य बनाया और यहाँ से आप दो विकल्प हैं।

  1. सेट AutoGenerateColumns = डेटा ग्रिड पर "गलत" और स्तंभ को छोड़कर सभी कॉलम आप संपादन योग्य आप IsReadOnly = "false" सेट हो जाएगा होना चाहता हूँ के लिए निर्धारित IsReadOnly = "सही"।
  2. ऑटोजनेर कॉलम = "ट्रू" (यह डिफ़ॉल्ट है, इसलिए आप एक्सएएमएल से विशेषता हटा सकते हैं) और कॉलम को अपने व्यूमोडेल में निजी रूप से कॉलम को छोड़कर कॉलम को छोड़कर सभी गुणों के लिए निजी बनाएं।

यहाँ विकल्प 1 के लिए मेरे नमूना कोड है:

<DataGrid x:Name="dgLoadDtl" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" ItemsSource="{Binding MyData}" AutoGenerateColumns="False"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Foreground="Black" Width="60" Header="Sctn" Binding="{Binding Sctn, Mode=TwoWay}" IsReadOnly="false" /> 
     <DataGridTextColumn Foreground="Black" Width="140" Header="CustName" Binding="{Binding CustName, Mode=TwoWay}" IsReadOnly="True"/> 
     <DataGridTextColumn Foreground="Black" Width="140" Header="Address" Binding="{Binding Address1, Mode=TwoWay}" IsReadOnly="True"/> 
     <DataGridTextColumn Foreground="Black" Width="50" Header="Bulk or Bag" Binding="{Binding BulkorBag, Mode=TwoWay}" IsReadOnly="True"/> 
     <DataGridTextColumn Foreground="Black" Width="80" Header="ProdCode" Binding="{Binding ProdCode, Mode=TwoWay}" IsReadOnly="True"/> 
     <DataGridTextColumn Foreground="Black" Width="80" Header="MedCode" Binding="{Binding MedCode, Mode=TwoWay}" IsReadOnly="True"/> 
    </DataGrid.Columns> 
</DataGrid>