MvvmCross Android 绑定字符串数组
MvvmCross Android Binding String Array
我正在尝试将一维字符串数组 属性 绑定到 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:Warning:103,21 无法绑定:在 String[] 上找不到源 属性 源 IndexedProperty:0
01-14 12:17:26.419 I/mono-stdout(28171): MvxBind:Warning:103,21 无法绑定:源 属性 找不到源 IndexedProperty:0 on String[]
我尝试了不同的绑定语法,但没有成功。我还尝试绑定 "Player" 对象的字符串 属性,例如 Players[0].PlayerName,它在 XAML 中运行良好,但在 Android.
中运行良好
https://github.com/MvvmCross/MvvmCross-Tutorials/blob/master/ApiExamples/ApiExamples.Droid/Resources/Layout/Test_ObservableCollection.axml 它在来自 Mvvmcross 的 API 示例中工作(使用 Observable 集合,我尝试了同样的事情但没有成功)
我尝试用 PlayerModel 创建一个列表,而不是用 PlayerModel 创建一个数组。我正在绑定 PlayerModel 的 属性 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" />
我正在尝试将一维字符串数组 属性 绑定到 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:Warning:103,21 无法绑定:在 String[] 上找不到源 属性 源 IndexedProperty:0 01-14 12:17:26.419 I/mono-stdout(28171): MvxBind:Warning:103,21 无法绑定:源 属性 找不到源 IndexedProperty:0 on String[]
我尝试了不同的绑定语法,但没有成功。我还尝试绑定 "Player" 对象的字符串 属性,例如 Players[0].PlayerName,它在 XAML 中运行良好,但在 Android.
中运行良好https://github.com/MvvmCross/MvvmCross-Tutorials/blob/master/ApiExamples/ApiExamples.Droid/Resources/Layout/Test_ObservableCollection.axml 它在来自 Mvvmcross 的 API 示例中工作(使用 Observable 集合,我尝试了同样的事情但没有成功)
我尝试用 PlayerModel 创建一个列表,而不是用 PlayerModel 创建一个数组。我正在绑定 PlayerModel 的 属性 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" />