基本的に私はエディタにテキストを入力すると、私のラベルに挿入されたデータが表示されます機能を作りたいと思います。また、ページを別のページにスワイプすると、データを入力した前のページでそのデータをそのラベルにバインドする必要があります。Xamarinフォームバインディングラベル
私はポータブルクラスを持っています。このクラスでは、私はここに、私は多くのラベル、ボックス、ボタン等を定義しかし、私は最も重要なことを示します方法public ContentPage CreatePage(MyObject thing)
を持っている:私は試してみました
public partial class CoolPage: CarouselPage
{
public CoolPage()
{
foreach (MyObject p in things)
{
Children.Add(CreatePage(p));
}
}
public ContentPage CreatePage(MyObject thing) {
var emptyLabel = new Label
{
Text = "Text",
WidthRequest = 50,
HeightRequest = 50,
BackgroundColor = Color.White
};
((StackLayout)page.Content).Children.Add(emptyLabel);
var inputNumb = new Editor
{
Text=thing.Number,
TextColor = Color.Black,
HorizontalOptions = LayoutOptions.Fill,
VerticalOptions = LayoutOptions.Fill,
IsVisible = true,
BackgroundColor = Color.White
};
inputNumb.SetBinding(Label.TextProperty, "Text");
inputNumb.BindingContext = thing.Number;
((StackLayout)page.Content).Children.Add(inputNumb);
}
}
なimpelemntする:ここで私は私のラベルとエディタが定義されていますイベント:
inputNumb.Completed += (sender, args) =>
{
inputNumb.SetBinding(Label.TextProperty, "Text");
inputNumb.BindingContext = thing.Number;
};
ただし、動作しません。それは同じ方法だからだと思います。また、CreatePage
メソッドinputCarNumb.Completed += InputCarNumb_Completed;
にそのような行を実装することによってメソッドのスコープを外そうとしましたが、あなたが変数inputNumbを定義すると、認識されず、他の場合に実装する方法がわかりません。私はそれがとても簡単だと知っていますが、私はSetBinding/BindingContextを使って何かが恋しくなると思います。
あなたはemptyLabel.SetBinding(Label.TextProperty、新しいバインディング{PATH = "inputNumb.Text"、MODE = BindingMode.TwoWay、ソース=この} '試すことができます); ' プロパティプロパティ値を完成したところでプロパティ名を作成し、その場所でプロパティ名を使用してください。 'inputNumb.Text' – Vishnu
@Vishnu、ありがとうございます。 'emptyLabel.SetBinding(Label.TextProperty、new Binding {Path =" inputNumb.Text "、Mode = BindingMode.TwoWay、Source = this});'このメソッドは動作しません。どんな種類の財産を作るのですか?それはプロパティをバインドされますか? – BinaryTie
プロパティ。 'CoolNodeText''を' get、set'で呼び出すと、 'Path = InputNumbText'の上でそのプロパティをバインドします。 ' OnCompleted'コールセットのプロパティ値を呼び出し、 'OnPropertyChanged(InputNumbText) 'を呼び出します。 – Vishnu