在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 ???
答案 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的一个功能。