2011-03-29 3 views
4

У меня есть список, а источник - это список. Я хочу, чтобы пользователь выбирал только один элемент. Когда я устанавливаю SelectionMode списка в одиночный, пользователь все равно может выбрать несколько элементов, и похоже, что listview сходит с ума и выбирает элементы, которые пользователь не выбирал ... выглядит очень странно ... может кто-нибудь знать, что может быть проблема?ListView, выбирающий один элемент, wpf

Я можите вставить здесь скриншот, я не имею вариант пасты .....

это XAML -

<StackPanel MinWidth="600" Margin="0,0,0,10" HorizontalAlignment="Left" Width="600"> 
    <GroupBox Header="Command Queue" BorderThickness="0" Foreground="CornflowerBlue"> 
         <Border BorderThickness="1.5" CornerRadius="10"> 
          <ListView SelectionMode="Single" Background="Transparent" BorderThickness="0" Margin="5" Name="ListView_CmdQ" ItemsSource="{Binding}" MaxHeight="450" FontFamily="verdana" FontSize="12"> 
          </ListView> 
         </Border> 
        </GroupBox> 
</StackPanel>    
+1

Вы можете опубликовать снимок экрана? –

+1

Код xaml также будет приятно видеть. – Christian

+0

Изменилось ли какое-либо свойство или поведение вашего ListView позади кода? Я не вижу ничего плохого в представлении списка, как в xaml. – Christian

ответ

2

ли элементы в списке появляются более чем один раз? Я видел эту проблему раньше, когда у вас есть что-то вроде этого:

var a = new Thing(); 
var b = new Thing(); 

var myList = new List<Thing>(); 
myList.Add(a); 
myList.Add(b); 
myList.Add(a); 
myList.Add(b); 

Если вы должны были связать ListView с myList, вы получите поведение, которое вы описали. Я думаю, что в основном это связано с тем, что несколько элементов в списке соответствуют SelectedItem, поэтому стиль списка немного запутан. Один из способов вокруг него, чтобы обернуть каждый элемент в другом классе:

var myList = new List<WrappedThing>(); 
myList.Add(new WrappedThing((a)); 
myList.Add(new WrappedThing((b)); 
myList.Add(new WrappedThing((a)); 
myList.Add(new WrappedThing((b)); 

... что означает, что каждый элемент в списке является уникальным, даже если деталью они оберточная не может быть.

+0

это как раз проблема, спасибо. –

+2

@olia Нажмите на галочку слева, чтобы отметить ответ Дэн Пузи как правильный, если он решил проблему. –

0

Если ваш list_listItems содержит одну и ту же строку дважды, вы получаете это поведение. Это происходит со значениями типов и ссылочными строками. Вероятно, вы должны перенести каждую строку в TextBlock и поместить ее в список.

Похоже, это сообщается, что ошибка все еще активна (с 2007 года) here.

+0

a ..... o.k. теперь я вижу свою проблему, я помещаю в список много же строк ... спасибо. –

Смежные вопросы