2010-10-17 2 views
4

У меня есть следующий код XAML:аргументы XAML для Click события

<Button Name="btnJeans" Click="btnJeans_Click" Padding="-1" > 
    <StackPanel Orientation="Horizontal" Margin="0,0,0,17" Name="jeansItem"> 
     <!--Replace rectangle with image--> 
     <Image Height="119" Width="82" Source="{Binding Image}" Margin="12,0,9,0"/> 
     <StackPanel Width="311">          
      <TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/> 
      <TextBlock Text="{Binding Price}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/> 
     </StackPanel> 
    </StackPanel> 
</Button> 

Однако btnJeans_Click нужно пройти "{Binding Name}" в качестве аргумента.

Как мне это сделать? Я занимаюсь разработкой для Windows Phone 7.

ответ

3

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

<Button Name="btnJeans" Command="{Binding Path=ButtonClickCommand}" CommandParameter="{Binding Name}"> 
    ... 
</Button> 

Вам потребуется выставить ButtonClickCommand как объект ICommand.

Как это сделать, будет зависеть от структуры остальной части вашего приложения. Например. Использование шаблона MVVM и т. Д.

+0

Свойство 'Command' не найдено в типе 'Button'. То же самое касается параметров –

+0

Это странно. Я просто помещаю ваш код в простое окно WPF, и я могу добавить свойства Command и CommandParameter к Button. Глядя на MSDN, они, похоже, тоже есть для Silverlight, так что это не проблема. –

+1

Вот страница MSDN: http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.buttonbase.command(v=VS.100).aspx –

5

Альтернатива на ПК - получить получение DataContext из аргументов события щелчка, например.

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     var record = ((Button)e.OriginalSource).DataContext; 
     MessageBox.Show("Do something with " + record.ToString()); 
    } 

это может быть применимо и к телефону?

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