- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
所以我需要更改 MvxSpinner 的文本颜色。我看到您无法更改 xaml 代码的颜色,所以我不得不为微调器使用模板。但是在我为微调器使用模板之前,一切都会与 viewModel 正确绑定(bind),现在当我使用模板时,它似乎无法在 viewmodel 中找到我的属性。有没有办法将当前 View 模型公开给模板?
如果有帮助,下面是我的代码段
<?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"
android:background="#FFFFFF">
<ImageView
android:src="@drawable/synchramed_trans_300"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView1" />
<TextView
android:text="Select Practice"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:textColor="#000000" />
<MvxSpinner
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="40dp"
android:textColor="#000000"
local:MvxItemTemplate="@layout/item_spinner"
local:MvxDropDownItemTemplate="@layout/item_spinnerdropdown"
local:MvxBind="ItemsSource PracticeItems; SelectedItem SelectedPracticeItem" />
<Button
android:text="Generate Report"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button1"
local:MvxBind="Click ReportCommand"
style="@style/DefaultButtonText"
android:background="@drawable/button_default_bg" />
</LinearLayout>
Item_Spinner
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:background="#fff000"
android:foreground="#ffffff"
android:layout_width="match_parent"
android:layout_height="wrap_content"
local:MvxBind="Text Caption" />
Item_SpinnerDropDown
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:background="#fff000"
android:foreground="#ffffff"
android:layout_width="match_parent"
android:layout_height="wrap_content"
local:MvxBind="Text Caption" />
View 模型
public class HomeViewModel
: MvxViewModel
{
string PracticeName = string.Empty;
private readonly IMvxMessenger _messenger;
private readonly IHomeService _homeService;
public HomeViewModel(IHomeService homeService, IMvxMessenger messenger)
{
_homeService = homeService;
_messenger = messenger;
_homeService.GetReportList(this);
}
public HomeViewModel()
{
}
public async Task InitializeViewModel()
{
await GetPractice ();
}
private async Task GetPractice()
{
try
{
PracticeItems = new ObservableCollection<string>(await _homeService.GetPracticeList(this));
}
catch (Exception ex)
{
//return null;
}
}
private string _selectedItem;
public string SelectedItem
{
get { return _selectedItem; }
set { _selectedItem = value; RaisePropertyChanged(() => SelectedItem); }
}
private string _caption = "sjdfsfkldj";
public string Caption
{
get { return _caption; }
set { _caption = value; RaisePropertyChanged(() => Caption); }
}
public ICommand ReportCommand
{
get { return new MvxCommand(() => ShowViewModel<OverviewViewModel>(new { param = SelectedPracticeItem })); }
}
public class Practices
{
public string ErrorMessage { get; set; }
public List<string> Practice { get; set; }
}
#region Report List Properties
private List<string> _reportItems;
public List<string> ReportItems
{
get { return _reportItems; }
set { _reportItems = value; RaisePropertyChanged(() => ReportItems); }
}
private string _selectedReportItem;
public string SelectedReportItem
{
get { return _selectedReportItem; }
set { _selectedReportItem = value; RaisePropertyChanged(() => SelectedReportItem); }
}
private ObservableCollection<string> _practiceItems;
public ObservableCollection<string> PracticeItems
{
get { return _practiceItems; }
set { _practiceItems = value; RaisePropertyChanged(() => PracticeItems); }
}
private string _selectedPracticeItem;
public string SelectedPracticeItem
{
get { return _selectedPracticeItem; }
set { _selectedPracticeItem = value; RaisePropertyChanged(() => SelectedPracticeItem); }
}
}
我收到以下错误 -
MvxBind:Warning: 17.62 Unable to bind: source property source not found Property:Caption on String
最佳答案
您无需执行任何额外操作即可将虚拟机暴露给模板。我面前有一些 Andorid 代码,它们与您使用微调器所做的完全一样,一切正常。
MvxBind:Warning: 17.62 Unable to bind: source property source not found Property:PracticeItems on String
MvxBind 警告表示您 View 中的 ViewModel 有问题。检查 View 的 ViewModel 设置为什么
关于c# - MvxSpinner 没有绑定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25601160/
我有一个 MvvmCross MvxSpinner在 Android 中绑定(bind)。用户选择一个值并反射(reflect)在我的属性 MealTypeSelected . 微调器允许用户选择膳
所以我需要更改 MvxSpinner 的文本颜色。我看到您无法更改 xaml 代码的颜色,所以我不得不为微调器使用模板。但是在我为微调器使用模板之前,一切都会与 viewModel 正确绑定(bind
我有一个绑定(bind)到 List 的 MvxSpinner因此: SelectedPhotoCategory SelectedItem 绑定(bind)到的也是一个 PhotoCategory
我正在使用一个包含 MvxSpinner 的 MvxListView。当我的应用程序运行时,跟踪显示以下几个实例: 当前微调器 SelectedItem 绑定(bind)中不允许使用空值 我知道数据对
我正在构建一个涉及从列表中添加项目的表单,但是向用户显示的列表取决于从另一个列表中进行的选择。为此,我有两个 MvxSpinner,每个都有一个绑定(bind)的 ItemsSource 和 Sele
我现在在 Android 上遇到了 Spinner (MvxSpinner) 的问题(但后来我也需要在 iOS 上使用它)。我有本周、上周、本月等微调周期过滤器。我的 api 服务需要这个过滤器来获取
我使用 MvxSpinner 在 MvvmCross for Xamarin 应用程序的组合框中显示国家/地区电话前缀。我可以正确地绑定(bind)到 ItemsSource 属性,所以我可以看到我的
我有一个如下定义的 MvxSpinner,当用户通过 ItemSelected 绑定(bind)在微调器中选择一个项目时,我试图触发一个命令: 我已经确认可以通过添加一个按钮从 View 中
我有一个自定义绑定(bind)的 MvxSpinner,它与我的 Android 和 iOS 应用程序之间共享的 ViewModel 配合得很好。在 Android API 级别 15 (4.0.3)
将 Xamarin.Android 与 MVVMCross 结合使用。当从 MVXSpinner 中选择未绑定(bind)到模型中的 SelectedYear 属性的值时。当加载页面调试器进入 Sel
我是一名优秀的程序员,十分优秀!