2014-08-28 4 views
0

У меня есть ListBox, объявленный в xaml, где его ItemsSource связывается с ObservableCollection. Работа в MVVM:WPF: Может ли метод вызова ListViewItem с его индексом как параметр

<ListBox ItemsSource="{Binding Arguments}"> 
    <ListBox.Resources> 
     <DataTemplate DataType="{x:Type local:CArgumentClass}"> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="{Binding ArgName}" ToolTip="{Binding Documentation}"/> 
       <TextBox Text="{Binding ValueToShow, TargetNullValue=Missing}"/> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.Resources> 
</ListBox> 

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

<ListBox ItemsSource="{Binding Arguments}"> 
    <ListBox.Resources> 
     <DataTemplate DataType="{x:Type local:CArgumentClass}"> 
      <StackPanel Orientation="Horizontal"> 
       <Button Style="{StaticResource DeleteButton}" 
         cal:Message.Attach="DeleteArgument($dataContext)]"/> 
       <TextBlock Text="{Binding ArgName}" ToolTip="{Binding Documentation}"/> 
       <TextBox Text="{Binding ValueToShow, TargetNullValue=Missing}"/> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.Resources> 
</ListBox> 

Мой вопрос, могу ли я отправить индекс элемента методу? Как?

Примечание: этот код составлен для вопроса, моя цель - удалить элементы из списка из представления пользователем простым способом. Элементы в списке не настраиваются.

+2

, возможно, вы можете отправить элемент и получить индекс из исходной коллекции в обработчике команд. это может быть мало сложным в xaml – pushpraj

ответ

1

Принимая pushpraj комментарий как ответ: пусть обработчик команды ищет индекс.

+0

действительно, это одно из самых простых решений этой проблемы. – pushpraj

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

  • Нет связанных вопросов^_^