在xaml中绑定Click方法

时间:2012-11-03 13:18:21

标签: c# xaml binding windows-8

在Windows 8中,C#+ xaml 我有一些课

Class ABC
{
 public string a {get; set;}
 public void someMethod()
 {
  **some code, changing a**
 }
}

和xaml中的绑定

<ListBox x:Name="playlistBox">
     <ListBox.ItemTemplate>
          <DataTemplate>
               <StackPanel Orientation="Horizontal">
                     <TextBlock Text="{Binding a}"/>
                     <Button Name="removeAlbumBtn" Content="method" Click="**NEED BINDING TO SOMEMETHOD HERE**"/>
                </StackPanel>
           </DataTemplate>
      </ListBox.ItemTemplate>
  </ListBox>

所以我必须键入someMethod ???

2 个答案:

答案 0 :(得分:1)

您需要通过该xaml文件的代码中的处理程序方法处理Click事件。例如,如果您显示的xaml位于MyControl.xaml中。您将在MyControl.xaml.cs

中使用以下方法
private void removeAlbumBtn_Click(object sender, RoutedEventArgs e)
{
    var a = ((Button)sender).DataContext as ABC;

    if(a != null)
        a.someMethod();
}

并将xaml更改为:

<Button Name="removeAlbumBtn" Content="method" Click="removeAlbumBtn_Click"/>

答案 1 :(得分:0)

您可以使用命令执行此操作。但是你需要做的工作量不仅仅是编写一个绑定它的方法。 WPF和Silverlight中有关命令的这篇文章可能有助于您理解和实现命令:http://tsells.wordpress.com/2010/06/23/command-binding-with-wpf-and-silverlight-net-4-0-with-m-v-vm/

它也适用于Windows 8,因为它是XAML的一个功能。