我有一个XAML布局(见下文),有许多按钮。他们以前都在工作,但既然我已经更新了一些尺寸和位置,一个人不再工作了?它出现了,但点击它不会触发相关的C#代码。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:My_App;assembly=My_App"
x:Class="My_App.HomePage"
Title="Home Page">
<ContentPage.Padding>
<OnPlatform x:TypeArguments="Thickness" iOS="7, 40, 7, 10" />
</ContentPage.Padding>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="120" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="40" />
</Grid.ColumnDefinitions>
<Button x:Name="NewDeviceButton" Image="add.png"
HorizontalOptions="Center"
VerticalOptions="FillAndExpand"
Grid.Row="7" Grid.Column="2" />
</Grid>
</ContentPage>
C#代码如下:
namespace My_App
{
public partial class HomePage : ContentPage
{
// Class Definitions
IAdapter adapter;
public HomePage(IAdapter adapter)
{
NewDeviceButton.Clicked += async (sender, e) => {
debug.writeline ("Button Press");
devices.Clear();
adapter.StartScanningForDevices (0x180D.UuidFromPartial ());
}
}
}
我真的不明白为什么按钮正在渲染和显示,但没有正常工作?
答案 0 :(得分:0)
您是否可能忘记更改代码中的命名空间?
我在你的Xaml文件中看到你使用Gas_Sense
命名空间,而你的C#代码引用My_App
命名空间...
(只是检查 - 请不要觉得冒犯: - )。
另一个猜测:你如何创建HomePage
?
如果它是从Xaml自动创建的,则问题可能是只调用默认构造函数而不是构造函数接受IAdapter
参数。尝试将调试行移动到构造函数的开头,看看是否到达Clicked +=
行。
答案 1 :(得分:0)
auto
解决了问题。虽然现在已经增加了几个issues的布局!