我正在寻找许多小时的答案但没有成功。有办法做到这一点,但每个包含的元素必须是静态的。什么不适合我。
我有MainPage类和Tile类。此tile类在MainPage布局中实例化几种tile。我需要添加一些这些瓷砖Tapped事件。此事件应修改MainPage元素。
最好的方法是什么?我总是以“非静态警告”结束,正如您在代码中看到的那样:
public class Tile
{
public static Grid buttonTile_MapPanel(int rowNum, int colNum)
{
Grid mapPanelButton = new Grid();
mapPanelButton.Background = new SolidColorBrush(Color.FromArgb(255, 50, 50, 50));
TextBlock title = new TextBlock();
title.Text = "Mapa";
title.HorizontalAlignment = HorizontalAlignment.Center;
title.VerticalAlignment = VerticalAlignment.Center;
title.Foreground = new SolidColorBrush(Colors.White);
mapPanelButton.Children.Add(title);
//this will be signed as error: An object reference is required for non static field...
mapPanelButton.Tapped += new RoutedEventHandler(MainPage.mapPanelService);
return mapPanelButton;
}
}
public sealed partial class MainPage : Page
{
public void mapPanelService(object sender, RoutedEventArgs e)
{
MapPanel.Margin = new Thickness(0,0,0,0);
}
}
答案 0 :(得分:0)
主要问题是糟糕的处理程序类型,它需要的东西比它应该的更多。
正确的代码: public void dataPanelService(object sender,Windows.UI.Xaml.Input.TappedRoutedEventArgs e) { 。 。