2012-11-20 3 views
1

저는 WPF에 새로운 꿀벌입니다. 나는이 문제를 콤보 박스로 가지고있다.Combobox WPF의 스타일 트리거링

콤보 박스를 처음 렌더링 할 때 표시 할 내용이없는 경우 콤보 상자의 테두리를 빨간색으로 설정해야하지만 안타깝게도 수행하지 않습니다.

코드를 찾아주세요 난 당신의 selectedItem에 바인딩 객체 모르는

<Style x:Key="requiredFieldValidationStyleComboBox"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.Content}" Value="{x:Null}"> 
      <Setter Property="ComboBox.BorderBrush" Value="{StaticResource FaultyBorderBrush}" /> 
      <Setter Property="ComboBox.ToolTip" Value="Input value is mandatory" /> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 
+0

? 그것은 Content 속성을 전혀 가지고 있습니까? – Harry

+0

이미 체크했는데 콤보 상자에 스타일을 넣었습니까? Andy

답변

0

스 니펫. 는하지만 난 당신이 동일하여 selectedItem 자체가 null로 물어거야 느낌이, 그런 다음 코드는 다음과 같아야합니다

<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem}" Value="{x:Null}"> 
       <Setter Property="ComboBox.BorderBrush" Value="{StaticResource FaultyBorderBrush}" /> 
       <Setter Property="ComboBox.ToolTip" Value="Input value is mandatory" /> 
      </DataTrigger> 

"콘텐츠"를 필요가 없습니다.

이것은 원하는 것입니다.

0

콤보 상자에 추가 한 후 완벽하게 작동하는 스타일을 찾았습니다. 모든 콤보 상자에 적용하려면 콤보 상자에 스타일 속성이 설정되어 있는지 확인하거나 x : Key 속성을 제거해야합니다.

의 selectedItem 객체를 바인더 제본 무엇
<Window.Resources> 
     <Style x:Key="requiredFieldValidationStyleComboBox"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.Content}" Value="{x:Null}"> 
        <Setter Property="ComboBox.BorderBrush" Value="Red" /> 
        <Setter Property="ComboBox.ToolTip" Value="Input value is mandatory" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Window.Resources> 
    <Grid Margin="0,0,401,279"> 
     <ComboBox Style="{StaticResource requiredFieldValidationStyleComboBox}" Margin="46,66,-46,-66"/> 
    </Grid> 

Nothing selected

Selected