2015-08-04 6 views
1

Я использую следующий код для Bind значения в нескольких выберите Listbox с Флажок в SilverLightНеобходимо получить выбранный элемент из множественного выбора ListBox в Silverlight

<ListBox x:Name="ValListBox" Margin="188,212,136,100" SelectionMode="Multiple"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <CheckBox IsChecked="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem}, Path=IsSelected}" Content="{Binding}" /> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

Мне нужно, чтобы получить выделенный текст элемента с помощью C# ?

+0

Если вы хотите ViewModel вы можете получить его Binding SelectedItem из ListBox для свойства того же типа, что и для ItemsSource Collection. Если вы хотите его в xaml, вы можете привязать свойство SelectedItem.Content и ElementName ValListBox – ethicallogics

ответ

0

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

Изменения в xaml: Нам нужно добавить функцию Click.

<ListBox x:Name="ValListBox" Margin="188,212,136,100" SelectionMode="Multiple"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <CheckBox Click="CheckBox_Click" IsChecked="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem}, Path=IsSelected}" Content="{Binding}" /> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 

в код Мы можем получить, как,

List<string> selecteditems = new List<string>(); 
private void CheckBox_Click(object sender, RoutedEventArgs e) 
     { 
      var cb = sender as CheckBox; 
      if (cb.IsChecked == true) 
      { 
       var item = cb.DataContext; 
       selecteditems.Add(item.ToString()); 
      } 
      else 
      { 
       var item = cb.DataContext; 
       selecteditems.Remove(item.ToString()); 
      } 
     } 

В списке SelectedItems мы можем получить все выбранные элементы из нескольких Listbox

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