2010-12-06 11 views
5

के रूप में मैं एक DataGrid कि कई DataGridTemplateColumns शामिल है काम नहीं कर रहा। मेरी समस्या यह है कि वर्तमान में चयनित पंक्ति कुछ कोशिकाओं के अग्रभूमि को सफेद में बदल देगी, यानी पाठ को सफेद बना दें। DataGridTemplateColumns जिसमें टेक्स्टब्लॉक सही तरीके से व्यवहार करते हैं और सफेद हो जाते हैं जबकि DataGridTemplateColumns जिसमें पंक्तियों का चयन होने पर टेक्स्टबॉक्स बदलते नहीं हैं।WPF DataGridTemplateColumn IsSelected ForgroundColor उम्मीद

क्या कोई जानता है कि इस समस्या को क्यों ठीक किया जाए या कैसे?

मैंने इस solution: को आजमाया है, लेकिन यह केवल टेक्स्टब्लॉक प्रभावित हो सकता है, क्या कोई जानता है कि क्या गलत हो सकता है?

उत्तर

4

मुझे सच में यकीन नहीं है कि क्यों ट्रिगर टेक्स्टबॉक्स फोरग्राउंड को भी प्रभावित नहीं करेगा, लेकिन आम तौर पर जब सेल संपादन मोड में होता है तो चयन रंग सक्रिय नहीं होना चाहिए, इसलिए हो सकता है कि टेक्स्टबॉक्स मूल्य को अस्वीकार कर दे लेकिन मुझे यकीन नहीं। यदि आप DataGridTextColumn का उपयोग करते हैं और संपादन मोड दर्ज करते हैं, तो आप एक ही प्रभाव देखेंगे, टेक्स्टबॉक्स में ट्रिगर से अग्रभूमि नहीं होगा लेकिन टेक्स्टब्लॉक होगा। डेटा ग्रिड में सभी चयनित बक्सें करने के लिए एक सफेद अग्रभूमि लागू करने के लिए आप यह कर सकते हैं (ध्यान दें कि यह किसी पाठ बॉक्स संपादन मोड में है कि प्रभाव होगा)

<DataGrid ...> 
    <DataGrid.Resources> 
     <Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}" > 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Foreground" Value="White"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
     <!-- Workaround for the TextBox --> 
     <Style TargetType="TextBox"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGridCell}}, Path=IsSelected}" Value="True"> 
        <Setter Property="Foreground" Value="White"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </DataGrid.Resources> 
    <!-- ... --> 
</DataGrid> 
+0

जाहिर है, आप डेटा ग्रिड के डिफ़ॉल्ट क्योंकि पाठ बॉक्स द्वारा अग्रभूमि को गति प्रदान नहीं कर सकते। [इस उत्तर] के लिए मुज़े की टिप्पणी के अनुसार अग्रभूमि और चयनित पाठ अग्रभूमि एक ही कुंजी है (http://stackoverflow.com/a/10850718/1466627)। –

संबंधित मुद्दे