XamlファイルのXamarin.Formsマークアップを使用して追加したリストビューにいくつかのアイテムを追加しようとしています。クリックイベントでフックすることでボタンにアクセスできますが、リストビューが空なので、winformsのようにondraw
のようなイベントが必要です。これにより、描画時にフックできます。
XAMLファイルには次のものがあります。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.Microsoft.com/winfx/2009/xaml"
x:Class="ButtonXaml.ButtonXamlPage">
<StackLayout>
<Button Text="Tap for click count!"
BorderWidth="10"
TextColor="Red"
HorizontalOptions="Center"
Clicked="OnButtonClicked" />
<ListView
HorizontalOptions="Center"
/>
</StackLayout>
</ContentPage>
.csファイルに私は持っています
using System;
using Xamarin.Forms;
namespace ButtonXaml
{
public partial class ButtonXamlPage
{
int count = 0;
public ButtonXamlPage()
{
InitializeComponent();
}
public void OnButtonClicked(object sender, EventArgs args)
{
((Button)sender).Text = "You clicked me";
}
}
}
したがって、リストビューでイベントにフックする必要がありますか、Androidで行うようにResource.getElementbyID
のようなことを行うことができますか
コードビハインドでFormsコントロールにアクセスするには、x:Name
属性を使用して名前を割り当てる必要があります。
xAMLの場合:
<ListView HorizontalOptions="Center" x:Name="MyList" />
コード内:
MyList.ItemsSource = myData;
Xamarinにバグがあり、VSは定義されたx:Nameを認識しません http://forums.xamarin.com/discussion/25409/problem-with-xaml-x-name-and-access-from -コードビハインド
XAMLで画像を定義したとします。
<Image x:Name="myImageXName" />
次に、これはコードビハインドで機能するはずです:
this.FindByName<Image>("myImageXName");
私の場合、問題は.xaml.csファイルにXamlCompilation(XamlCompilationOptions.Compile)]
行がないことでした。
例:
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
BindingContext = new MainPageViewModel();
}
...
}