2014-11-20 6 views
6

मुझे एक WPF डेटाग्रिड मिला है जहां चयनित इटैम व्यूमोडेल प्रॉपर्टी से जुड़ा हुआ है।डब्ल्यूपीएफ डाटाग्रिड - चयनित छवि को तब भी हाइलाइट करें जब चयनित इटैम एक बाध्य संपत्ति है

SelectedItem="{Binding DataContext.SelectedBooking, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" 

एक उपयोगकर्ता एक पंक्ति पर क्लिक करता है, तो यह चयन करते समय, केवल दृश्य सुराग पंक्ति के धूसर पृष्ठभूमि बहुत थोड़ा हल्का हो जाता है है। मैं इस और अधिक स्पष्ट करने की जरूरत है, तो मैं इन जोड़ने की कोशिश की, व्यक्तिगत रूप से:

<DataGrid.RowStyle> 
    <Style TargetType="{x:Type DataGridRow}"> 
     <Style.Triggers> 
      <Trigger Property="IsSelected" Value="True"> 
       <Setter Property="Foreground" Value="Red"/> 
       <Setter Property="Background" Value="Red" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</DataGrid.RowStyle> 

और

<DataGrid.Resources> 
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red"/> 
</DataGrid.Resources> 

परिणाम एक ही है। जब कोई उपयोगकर्ता एक पंक्ति पर सिंगल-क्लिक करता है तो यह बहुत ही संक्षिप्त रूप से लाल चमकता है और फिर पीले भूरे रंग में जाता है, हालांकि पंक्ति वास्तव में चयनित होने के रूप में बनी हुई है। अगर वे दूसरी बार उस पर क्लिक करते हैं, तो यह लाल हो जाता है और लाल रहता है।

यदि मैं चयनित इटिम पर बाध्यकारी को हटा देता हूं, तो यह अपेक्षा के अनुसार काम करता है। बाइंडिंग के बावजूद मैं यह काम कैसे कर सकता हूं?

उत्तर

7

मुझे सिस्टमकोलर्स के लिए इंटेलिजेंस के माध्यम से स्क्रॉल करने का जवाब मिला। एक निष्क्रिय चयन चयन ब्रश है जिसे आप ओवरराइड भी कर सकते हैं। `

<DataGrid.Resources> 
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red"/> 
    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Red"/> 
</DataGrid.Resources> 
+1

आप यह कर सकते कि एक मनोरंजक थोड़ा हैक भी है" {x: स्टेटिक SystemColors.InactiveSelectionHighlightBrushKey} "रंग =" {DynamicResource {x: स्टेटिक SystemColors.HighlightColorKey}} " /> 'यह इसे बना देगा ताकि निष्क्रिय सक्रिय हो या चाहे हाइलाइट कुंजी को बदल दिया जा सके। –

+0

निष्क्रिय चयन HighlightBrushKey केवल FW 4.5 के साथ काम करता है और FW 4.0 के साथ अपवाद फेंकता है। कृपया http://stackoverflow.com/a/13827971/1815957 देखें – diedie2

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