2017-01-16 4 views
1

Я хочу, чтобы преобразовать следующий XAML, чтобы вместо того, чтобы использовать пользовательские ViewCell, определенный в C# ...Xamarin формы - C# эквивалент XAML привязки

<ListView x:Name="___listview" HasUnevenRows="True"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <ViewCell> 
       <StackLayout> 
        <Button Image="{Binding ImageName}" Command="{Binding ShowDetailsCommand}" /> 
       </StackLayout> 
      </ViewCell> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

Таким образом, после преобразования у меня есть ...

<ListView x:Name="___listview" HasUnevenRows="True"> 
    <ListView.ItemTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

и C# ...

public partial class MainPage : ContentPage 
{ 
    public MainPage() 
    { 
     InitializeComponent(); 
     ___listview.ItemsSource = Repository.GetList(); 
     ___listview.ItemTemplate = new DataTemplate(typeof(CustomViewCell)); 
    } 
} 

public class CustomViewCell : ViewCell 
{ 
    bool _initialized = false; 

    public CustomViewCell() 
    { 
     var stack = new StackLayout(); 

     var button = new Button(); 

     stack.Children.Add(button); 

     View = stack; 
    } 
} 

Что код для необходимого полного синтаксиса связывания на кнопки Image nd Command Свойства, как это было сделано в XAML?

ответ

4
var button = new Button(); 
button.SetBinding(Button.ImageProperty, new Binding("ImageName")); 
button.SetBinding(Button.CommandProperty, new Binding("ShowDetailsCommand")); 
Смежные вопросы