0

在 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 ???

4

2 回答 2

1

您需要通过该 xaml 文件后面Click的代码中的处理程序方法来处理事件。例如,如果您显示的 xaml 位于. 您将有一个类似以下的方法:MyControl.xamlMyControl.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"/>
于 2012-11-03T13:39:03.003 回答
0

您可以使用命令来完成。但是您要做的工作量不仅仅是编写一个绑定它的方法。这篇关于 WPF 和 Silverlight 中命令的帖子可能会帮助您理解和实施命令:http ://tsells.wordpress.com/2010/06/23/command-binding-with-wpf-and-silverlight-net-4-0 -with-mv-vm/

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

于 2012-11-03T14:19:49.457 回答