Така че трябваше да променя цвета на текста на моя MvxSpinner. Виждам, че не можете да промените цвета от xaml кода, така че трябваше да използвам шаблони за спинера. Но преди да използвах шаблони за spinner всичко се свързваше правилно с 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>
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" />
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 Не може да се обвърже: източник на свойството източник не е намерен Свойство:Caption on String