2012-07-25 4 views
0

를 사용하기 전에 비어 있어야합니다 (예외 없음) :항목 컬렉션 ItemsSource

<ListBox ItemsSource="{Binding EdgedBoards}" SelectedItem="{Binding SelEdgedBoard, Mode=TwoWay}" DisplayMemberPath="Name"> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="{x:Type ListBoxItem}" 
       BasedOn="{StaticResource {x:Type ListBoxItem}}"> 

      <Setter Property="IsSelected" 
        Value="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> 
     </Style> 
    </ListBox.ItemContainerStyle> 
</ListBox> 

DataTrigger 나의 목록 상자 :

,
<ListBox ItemsSource="{Binding EdgedBoards}" SelectedItem="{Binding SelEdgedBoard, Mode=TwoWay}" DisplayMemberPath="Name"> 
    <Style TargetType="{x:Type ListBox}" BasedOn="{StaticResource {x:Type ListBox}}"> 
     <Setter Property="Focusable" Value="True" /> 

     <Style.Triggers> 
      <DataTrigger Binding="{Binding ElementName=EdgedBoardsAdd_UC, Path=Visibility}" Value="Visible"> 
       <Setter Property="Focusable" Value="False" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 

    <ListBox.ItemContainerStyle> 
     <Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}"> 
      <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> 
     </Style> 
    </ListBox.ItemContainerStyle> 
</ListBox> 

후자의 코드에 어떤 문제가 있습니까?

답변

6

스타일을 올바르게 선언하지 않았으므로 목록 상자의 내용으로 설정되어 있습니다. 단일 스타일을 포함하는 목록을 수동으로 선언하고 있습니다.

이 문제를 해결하려면 기존 Style 요소를 <ListBox.Style> 요소로 래핑해야합니다.

3

Style으로 추가 했으므로 ListBox.Style 태그를 잊어 버렸습니다. 또한 ItemsSource을 묶으려고하면 오류가 발생합니다.

관련 문제