XAMLからXamarinのコードをC#に変更するように依頼されました。
私がこれを行う方法について私にアドバイスを与えることができる誰かがここにいますか?
これが私がXAMLに持っているものの例です。MyGridは、テキストとTappedCmdバインディングを持つC#で記述されたラベルが内部にあるグリッドです。
<ContentPage x:Name="thisPage">
<StackLayout
BindableLayout.ItemsSource="{Binding ListOfText}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<MyGrid Text="{Binding Text}"
TapCommand="{Binding
Path=BindingContext.TappedCmd, Source={x:Reference Name=thisPage}}"/>
</DataTemplate>
</BindableLayout.ItemTemplate>
</StackLayout>
これはC#で簡単に実行できるものですか、それを実行するにはどうすればよいですか、または少なくとも誰かが私が作業に使用できる同様のコードの例を教えてくれますか?
以下のようなものを試すことができます:
public YourPage()
{
var viewModel = ...;
var dataTemplate = new DataTemplate(()=>
{
var mygrid = new MyGrid ();
mygrid.SetBinding(MyGrid.TextProperty, "Text");
mygrid.SetBinding(MyGrid.TapCommandProperty, new Binding("TappedCmd", source: viewModel));
return mygrid;
});
StackLayout stackLayout = new StackLayout();
BindableLayout.SetItemsSource(stackLayout, viewModel.ListOfText);
BindableLayout.SetItemTemplate(stackLayout, dataTemplate);
Content = stackLayout;
}
バインド可能なレイアウトを参照できます
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加