2014-09-30 72 views
1

我有一個使用MVVM Light的通用應用程序的工作解決方案。 它看起來服用點是這樣的:帶有使用MVVM Light的Android按鈕的ListboxItem

   <Grid x:Name="grdInfo"> 
        <ListBox ItemsSource="{Binding TheEntries}"> 
         <ListBox.ItemTemplate> 
          <DataTemplate> 
           <Grid> 
            <Grid.ColumnDefinitions> 
             <ColumnDefinition Width="*" /> 
             <ColumnDefinition Width="100"/> 
            </Grid.ColumnDefinitions> 
            <TextBlock Text="{Binding TheInfo}" /> 
            <Button Grid.Column="1" Content="Start Action" 
            Command="{Binding DataContext.TheActionCommand, ElementName=grdInfo}" 
           CommandParameter="{Binding}" /> 
           </Grid> 
          </DataTemplate> 
         </ListBox.ItemTemplate> 
        </ListBox> 
       </Grid> 

後面的代碼看起來是這樣的:

RelayCommand<SomeItemType> rC = new RelayCommand<SomeItemTyp>(HandleThis); 

    private void HandleThis(SomeItemType TheItem) { 
     ... 
    } 

如何(如果甚至有可能)可以這樣與Android(進一步使用MVVM光)

+0

綁定部分? – 2014-09-30 17:11:23

+0

@Derek:是的 - 我忘了提及 - 我正在使用Xamarin。 所以我用C#編寫代碼。 – ManniAT 2014-09-30 17:37:41

+0

如果你想了解更多細節,請告訴我,我不確定你的意思是一般的還是收集的。 – 2014-09-30 19:08:11

回答

0
完成

在Android上,如果你不使用某種綁定,你會這樣做manually

更新:

看來MvvmLight有bindings擴展方法,extension method source

this.AddBinding(
      () => Vm.Hello, 
      () => MyButton.Text); 

     MyButton.AddCommand(
      "Click", 
      Vm.IncrementCommand); 

更先進的綁定:

使用從MvvmCross綁定:videocode

使用Xamarin.Forms,綁定支持內置,使用代碼或XAML。

自己動手,看看QuickCross,它的確很簡單。

+0

由於您提到了不同於我使用的框架(MVVMLight)的框架 - 這是否意味着MVVMLight不支持我所要求的? – ManniAT 2014-09-30 22:18:10

+0

我不正確,我沒有意識到Laurent爲此添加了一些東西。 http://blog.galasoft.ch/posts/2014/05/mvvm-light-v4-4-with-xamarin-android-support/ – 2014-10-01 15:05:27