作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在每次单击按钮时显示一行新的 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/
我是一名优秀的程序员,十分优秀!