2017-01-16 9 views
1

ich folgende XAML konvertieren möchten eine benutzerdefinierte stattdessen verwenden ViewCell in C# definiert ...Xamarin Forms - C# -Äquivalent von XAML-Bindungen

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

Also nach der Konvertierung Ich habe ...

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

und die 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; 
    } 
} 

Was auf den Button der den Code benötigt vollständig die Bindung Syntax ist Image ein nd Command Eigenschaften wie in der XAML getan wurde?

Antwort

4
var button = new Button(); 
button.SetBinding(Button.ImageProperty, new Binding("ImageName")); 
button.SetBinding(Button.CommandProperty, new Binding("ShowDetailsCommand"));