gpt4 book ai didi

android - 如何在 Android Xamarin Visual Studio 中单击按钮时在 MvxListView 上显示新项目

转载 作者:行者123 更新时间:2023-11-29 17:15:18 25 4
gpt4 key购买 nike

我想在每次单击按钮时显示一行新的 TextView。我正在使用 MvvmCross,我知道我应该使用分配给布局模板的 MvxListView,但我不知道如何在单击按钮时在屏幕上显示它。

谁能给我一个从 ViewModel 执行此操作的简单代码示例,并非常简短地解释哪一行代码启动了新 TextView 的显示?

更新

我在下面提供我的代码:

ViewModel.cs

public class FirstViewModel 
: MvxViewModel
{
private ObservableCollection<Unit> unitCodes;
public ObservableCollection<Unit> UnitCodes
{
get { return unitCodes; }
set { unitCodes = value; RaisePropertyChanged(() => UnitCodes); }
}

public IMvxCommand ButtonCommand { get; private set; }
public FirstViewModel()
{
unitCodes = new ObservableCollection<Unit>();
ButtonCommand = new MvxCommand(() =>
{
UnitCodes = UnitCodes ?? new ObservableCollection<Unit>();
UnitCodes.Add(new Unit("123", "Test Name"));
});
}

public class Unit : MvxViewModel
{
private string unitCode;
public string UnitCode
{
get { return unitCode; }
set { unitCode = value; RaisePropertyChanged(() => UnitCode); }
}
private string unitName;
public string UnitName
{
get { return unitName; }
set { unitName = value; RaisePropertyChanged(() => UnitName); }
}

public Unit() { }
public Unit(string unitCode, string unitName)
{
UnitCode = unitCode;
UnitName = unitName;
}
}
}

View.axml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="40dp"
local:MvxBind="Click ButtonCommand"
android:text="Click To Add" />
<Mvx.MvxListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
local:MvxItemTemplate="@layout/unitcodeitemlayout"
local:MvxBind="ItemSource UnitCodes" />
</LinearLayout>

unitcodeitemlayout.axml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20dp"
local:MvxBind="Text UnitName" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30dp"
local:MvxBind="Text UnitCode" />
</LinearLayout>

我的代码没有任何编译或运行时错误,但是单击按钮时没有任何反应。我想要的是在每次单击按钮时将“123”和“测试名称”添加到显示中。

最佳答案

您的代码是正确的。但是,您在 MvxListView axml 下拼错了 ItemsSource

应该是:

<Mvx.MvxListView
...
local:MvxBind = "ItemsSource UnitCodes"/>

关于android - 如何在 Android Xamarin Visual Studio 中单击按钮时在 MvxListView 上显示新项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39312225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com