MvvmCross Android绑定字符串数组

时间:2016-01-14 11:23:39

标签: c# android xamarin mono mvvmcross

我尝试将单维字符串数组属性绑定到TextView但它不起作用。

视图模型:

    public string[] Player
    {
        get { return _player; }
        set { _player = value; RaisePropertyChanged(() => Player); }
    }

Windows8 xaml(完美无缺):

<TextBox x:Name="txtbox_PlayerName1" Text="{Binding Path=Player[0], Mode=TwoWay}" Grid.Column="2" Width="600" Height="30" HorizontalAlignment="Left"></TextBox>

Android axml:

<TextView
    android:layout_marginTop="20dp"
    android:layout_marginLeft="5dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView1"
    local:MvxBind="Text Player[0]" />

日志:

MvxBind:警告:103,21无法绑定:未找到源属性源IndexedProperty:0在String []上 01-14 12:17:26.419 I / mono-stdout(28171):MvxBind:警告:103,21无法绑定:未找到源属性源IndexedProperty:0 on String []

我为Binding尝试了不同的语法但没有成功。此外,我试图绑定一个&#34;播放器&#34;的字符串属性。像Players [0] .PlayerName这样的对象在XAML中工作得很好,但在Android上却没有。

https://github.com/MvvmCross/MvvmCross-Tutorials/blob/master/ApiExamples/ApiExamples.Droid/Resources/Layout/Test_ObservableCollection.axml它正在Mvvmcross的API样本中工作(使用Observable Collection,我尝试了同样的事情但没有成功)

1 个答案:

答案 0 :(得分:2)

我尝试使用PlayerModel而不是使用PlayerModel的数组创建List。我绑定了PlayerModel的Property PlayerName而不是字符串数组,现在它可以工作了。我很困惑,因为我几天前也试过了。

private List<PlayerModel> _player;

public List<PlayerModel> Player
    {
        get { return _player; }
        set { _player = value; RaisePropertyChanged(() => Player); }
    }

XAML:

Text="{Binding Path=Player[0].PlayerName, Mode=TwoWay}"

axml:

<TextView
android:layout_marginTop="20dp"
android:layout_marginLeft="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView1"
local:MvxBind="Text Player[0].PlayerName" />