क्या wpf नियंत्रण में DataGrid की पहली पंक्ति के पहले कॉलम को हमेशा अक्षम करने का कोई तरीका है (शैलियों और बहु ​​ट्रिगर्स का उपयोग करके)? यह एक टेम्प्लेटेड कॉलम है जो एडिट मोड में कॉम्बो बॉक्स और सामान्य मोड में टेक्स्ट बॉक्स दिखाता है। मैं चाहता हूं कि यह कभी भी संपादन मोड (केवल यह कॉलम) में न जाए। पंक्ति के बाकी कॉलम संपादन मोड में जाने में सक्षम होने चाहिए।

-3
Nikhil 14 नवम्बर 2018, 01:49

1 उत्तर

सबसे बढ़िया उत्तर

हां, यह संभव है (दूसरे शब्दों में आप एक निश्चित सेल को निष्क्रिय करना चाहते हैं), लेकिन मैं लक्ष्य तक पहुंचने के लिए ValueConverter या CellTemplateSelector का उपयोग करना पसंद करूंगा।

नीचे दिए गए दक्षिण में एक प्रतिबंध है, कि आपको ItemsSource में तत्वों की संख्या के लिए DataGrid के लिए एक AlternationCount गुण सेट करना होगा।
पंक्ति अनुक्रमणिका प्राप्त करने के लिए यह "आसपास का काम" है, क्योंकि DataGridRow में अनुक्रमणिका प्राप्त करने के लिए कोई संपत्ति नहीं है (केवल एक विधि GetIndex())।

<DataGrid ItemsSource="{Binding YourItemsCollection}" AutoGenerateColumns="false" AlternationCount="{Binding YourItemsCollection.Count}">
    <DataGrid.CellStyle>
        <Style TargetType="DataGridCell">
            <Style.Triggers>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding Column.DisplayIndex, RelativeSource={RelativeSource Self}}" Value="0"/>
                        <Condition Binding="{Binding AlternationIndex, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="0"/>
                    </MultiDataTrigger.Conditions>
                    <MultiDataTrigger.Setters>
                        <Setter Property="IsEnabled" Value="False" />
                    </MultiDataTrigger.Setters>
                </MultiDataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.CellStyle>
</DataGrid>
0
Rekshino 14 नवम्बर 2018, 09:47