문제

항목 목록을 표시하려는 시나리오가 있으며 "현재"항목 (작은 화살표 마커 또는 변경된 배경색)을 나타냅니다.

"selectedItem"의 컨텍스트가 필요하기 때문에 ItemsControl은 우리에게 좋지 않습니다. 그러나 선택을 프로그래밍 방식으로 옮기고 사용자가 변경할 수 없습니다.

ListBox를 비inCinteractive로 만드는 간단한 방법이 있습니까? 우리는 의도적으로 마우스와 키보드 이벤트를 삼켜서 퍼지 할 수 있지만, 우리가 원하는 것을 제공하는 기본 속성 (시각적 스타일에 영향을 미치지 않고 "Isenabled"에 거짓으로 설정)을 놓치고 있습니까?

아니면 ... 두 세계에서 가장 좋은 또 다른 WPF 컨트롤이 있습니까?

도움이 되었습니까?

해결책

한 가지 옵션은 설정하는 것입니다 ListBoxItem.IsEnabled 에게 false:

<ListBox x:Name="_listBox">
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="IsEnabled" Value="False"/>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>

이렇게하면 항목을 선택할 수 없지만 원하는대로 렌더링하지 못할 수도 있습니다. 이 문제를 해결하기 위해 트리거 및/또는 템플릿으로 놀 수 있습니다. 예를 들어:

<ListBox x:Name="_listBox">
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="IsEnabled" Value="False"/>
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Foreground" Value="Red" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>

다른 팁

나는 같은 문제가 있었다. iSenabled 세트를 True로두고 Listbox의 미리보기 이벤트를 처리하여 해결했습니다. 핸들러 세트에서 E.가 true로 편집되지 않기를 원하지 않는 경우.

    private void lstSMTs_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        e.Handled = !editRights;
    }

ItemsControl/Listbox가 데이터 라운드입니까?

나는 당신이 소스 데이터의 속성에 묶인 각 항목의 배경 브러시를 만들거나 컨버터를 통해 속성을 전달할 수 있다고 생각합니다. 같은 것 :

  <ItemsControl DataContext="{Binding Source={StaticResource Things}}" ItemsSource="{Binding}" Margin="0">
    <ItemsControl.Resources>
      <local:SelectedConverter x:Key="conv"/>
    </ItemsControl.Resources>
    <ItemsControl.ItemsPanel>
      <ItemsPanelTemplate>
        <local:Control Background="{Binding Path=IsSelected, Converter={StaticResource conv}}"/>
      </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>

첨부 된 속성을 사용하여 선택할 수없는 ListBoxItem (또는 ListViewItem) 기능 :http://thrash505.wordpress.com/2011/01/04/non-selectable-listboxitem-or-listviewitem-using-attached-properties/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top