MvxSpinner not binding
本文关键字:binding not MvxSpinner | 更新日期: 2023-09-27 18:20:14
所以我需要更改MvxSpinner的文本颜色。我看到你无法更改xaml代码中的颜色,所以我不得不使用微调器的模板。但在我为微调器使用模板之前,所有内容都会与viewModel正确绑定,现在当我使用模板时,它似乎无法在viewModel中找到我的属性。有没有办法将当前视图模型公开给模板?
下面是我的代码段,如果它有助于
<?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>
项目_ Pinner
<?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" />
ViewModel
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:警告:17.62无法绑定:源属性不是源已找到属性:字符串上的标题
您不需要做任何额外的事情来向模板公开VM。我面前有一些Andorid代码,它正是你用微调器所做的,一切都很好。
MvxBind:警告:17.62无法绑定:源属性不是源find属性:字符串上的PracticeItems
MvxBind警告表示视图中的ViewModel出现问题。检查视图的ViewModel设置为的内容