2014-01-28 6 views
0

У меня есть вид списка, элементы которого определяются с помощью ItemsSource. ItemsSource - это список локального типа.
Мне нужно отправить как CommandParameter выбранных товаров DataType.Отправка типа данных в качестве параметра команды

Может кто-нибудь помочь мне с этим?

Код: (Этот код находится в App.xaml и шаблон данных находится внутри тега itemsTemplate)

<Application.Resources> 
    <DataTemplate x:Key="xxx" DataType="BL:DeviceInfo"> 
     <StackPanel> 
      <Button Command="{Binding DataContext.SelectDeviceCommand RelativeSource={RelativeSource ancestorType=ListView}} CommandParameter="{???????}" /> 
     </StackPanel> 
    </DataTemplate> 
</Application.Resources> 

Я палочка отправить SelectedItem как DeviceInfo, который является типом пунктов список, который является источником элементов списка.

+1

Что вы пытались до сих пор? Покажите код, и мы сможем помочь. – venerik

+0

* I wand, чтобы отправить SelectedItem как Deviceinfo * ... что 'SelectedItem'? * шаблон данных находится внутри itemsTemplate * ... пожалуйста, покажите нам, что ... и какой контроль коллекции вы используете? Пожалуйста, предоставьте * весь соответствующий код для вашей проблемы *. – Sheridan

+0

Не можете ли вы отправить _item_ с помощью '{Binding}', а затем сделать '.GetType()' в вашем конверторе, чтобы получить 'DataType'? – sthotakura

ответ

1

Самый простой является:

CommandParameter="{Binding}" 

Это пошлет сам объект DataContext в качестве параметра командной строки. Затем вы можете получить его тип в обработчике для команды.

Если вам НЕОБХОДИМО использовать сам тип отправленного в качестве параметра, вам необходимо создать конвертер.

http://msdn.microsoft.com/en-us/library/system.windows.data.binding.converter(v=vs.110).aspx

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