2014-04-09 1 views
0

콤보 상자가있는 xaml이 있습니다. 나는 그 (것)들을 선택할 수없는 어떤 이유로 저 품목이있다 나가 품목을 선택할 때 보통 나의 선택을 바꾸게하지 않는다, 그리고 그것이 특정 가치를 위해 단지 인 경우에. 다음은 코드입니다 :ComboBox - 선택을 변경할 수 없거나 선택할 수 없습니다.

<ComboBox SelectedItem="{Binding CurrentUsers}"> 
    < ComboBox.ItemsSource> 
      <MultiBinding Converter="{StaticResource DictionaryKeyToValueConverter"} Mode="OneWay"> 
       < Binding Path="AllUsersByDepartment"/> 
       < Binding Path = " Department"/ > 
      </MultiBinding> 
    </ComboBox.ItemsSource> 
    < ComboBox.ItemContainerStyle> 
     <Style TargetType = " { x : Type ComboBoxItem}"> 
       < Setter Property = " IsEnabled"> 
        < Setter.Value> 
         <MultiBinding Converter = "{StaticResource DictionaryKeyToValueConverter}" Mode="OneWay "/> 
          <Binding Path = " DataContext.UserToAvailabilityDictionary" RelativeSource ="{RelativeSource Mode=FindAncestor, AncestorType = { x : Type ComboBox}}"/> 
          < Binding Path = ". "/> 
         </MultiBinding > 
        </Setter.Value> 
        </Setter> 
      <Style.Triggers> 
       < Trigger Property="IsEnabled " Value = " False " > 
        <Setter Property = " Template"> 
         <Setter.Value> 
          < ControlTemplate> 
           < TextBlock Text="{Binding Path=Description}" Foreground="Red"/> 
          </ControlTemplate> 
         </Setter.Value> 
         </Setter> 
       </Trigger> 
      </Style.Triggers 
     </Style > 
    </ComboBox.ItemContainerStyle > 
    < ComboBox.ItemTemplate> 
     < DataTemplate> 
      < ComboBoxItem Content="{Binding Path=Description}"/> 
     </DataTemplate > 
    </ComboBox.ItemTemplate > 
    </ComboBox> 

나는 내 휴대 전화로 컴퓨터에서 복사 한 이후로 내가 쓴 것이 분명하다 바랍니다. 기본적으로 모든 사용자가 있고 부서별로 나눕니다. 사용자는 부서에서 하나만 볼 수 있으며 바인드 된 사전에서 사용할 수있는 항목을 선택할 수 있습니다. 사용할 수없는 경우 ComboBox의 항목은 빨간색 및 uunelectable입니다. 이 작동합니다. 유일하지 않은 것은 일부 항목의 선택을 변경하는 것이며 일부 항목은 (빨간색으로 표시되지 않아야하고 시작해야 함) 선택할 수 없습니다. 내가 그 문제를 읽을 수 있기 때문에 항상 Equals 메서드에서 false를 반환하도록 사용자의 개체를 변경했지만 도움이되지 않았습니다. 미리 감사드립니다.

업데이트 : ComboBox 항목 및 템플릿의 스타일을 제거 했으므로 선택할 수 있습니다. 하지만 실제로 트리거와 스타일이 필요합니다.

+0

죄송합니다 코드를 편집하여 코드로 표시하려고합니다. – user3260639

답변

0

ComboBox.ItemTemplate을 제거하고 대신 ComboBox에 DisplayMemberPath를 넣었습니다. 이제는 작동합니다.

관련 문제