2009-09-30 3 views
3

WPF Datagrid에서 첫 번째 행 (only)의 스타일을 변경하고 싶습니다. 그러나이를 수행하지 못했습니다. 나는이 같은 트리거, 뭔가를 만드는 방법에 대해 궁금 : WPF Datagrid의 첫 번째 행 스타일

<Style TargetType="{x:Type dg:DataGridRow}"> 
    <Style.Triggers> 
     <Trigger Property="SelectedIndex" Value="0"> 
      <Setter Property="Background" Value="Red"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

그러나 DataGridRow에는 'selectedIndex의'속성이 없기 때문에이 작동하지 않습니다 물론

. 나는 또한 내 코드에서 이것을 수행하는 몇 가지 시도를했지만 작동시키지 못했습니다.

상당히 단순한 것으로 보이지만 관리하지는 않았으므로 조언을 주시면 감사하겠습니다.

감사합니다, 윌

답변

1

당신은, 당신의 스타일을 반환하는 IValueConverter를 만들 수있을 것 중 하나 Style 개체하거나 문자열 표현으로 (예. 스타일의 이름). 그런 다음 DataGrid의 스타일 속성을 변환기에 바인딩하고 기본 항목 목록을 매개 변수로 전달하여 현재 항목의 인덱스를 결정할 수 있습니다. 이 작업을 할 경우

컨버터는 다음과 같이 보일 수

...

public class StyleConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     Style style1 = App.Current.FindResource("RowStyle1") as Style; 
     Style style2 = App.Current.FindResource("RowStyle2") as Style; 

     List<object> items = parameter as List<object>; 

     if (items[0] == value) 
     { 
      return style1; 
     } 

     return style2; 
    } 
} 

확실하지, 아마 중 하나를 아주 잘 설명하지 않았습니다!

나는 지금 호기심이있다. 나는 이것을 시도해보고 작동하도록 할 수 있는지 알아볼 것이다.

+0

글쎄 - 그랬니? :) –

+0

나는 오래 전이었고, 거의 1 년 만에 WPF를 건드리지 않았다! – TabbyCool

관련 문제