홈페이지에서 listview의 항목 목록을 채우는 xamarin 프로젝트를 빌드했습니다. 이 페이지의 변수를 ViewModel 클래스에 전달해야합니다. 나는 그것을 어떻게합니까 ??? 도움을 받으실 수 있습니다.내 ViewModel 클래스에서 내 홈페이지의 변수에 액세스하는 방법은 무엇입니까?
내 홈 페이지 코드는 다음과 같습니다 :
개인 비동기 무효 LstItems_OnItemTapped (객체 O를, ItemTappedEventArgs 전자)
{
var ItemCodeParam = e.Item as Item;
var ItemCode = ItemCodeParam.ItemCode;
await Navigation.PushAsync(new DetailItemPage(ItemCode));
나는 내 뷰 모델 클래스에을 ItemCode 통과해야합니다.
}
내보기 모델
네임 스페이스 MyFirstDbApp.ViewModels { 공용 클래스 ItemDetailsViewModel 다음과 같습니다에서 INotifyPropertyChanged { 개인 목록 _itemsList;
public List<Item> ItemsList
{
get { return _itemsList; }
set
{
_itemsList = value;
OnPropertyChanged();
}
}
public ItemDetailsViewModel()
{
InitializeDataAsync();
}
private async Task InitializeDataAsync()
{
var result = await ItemServices.GetItemsAsync().ConfigureAwait(false);
ItemsList = result.Where(x => x.ItemCode == "").ToList();
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}
어디 당신이 당신의 VM을 만들려면 어떻게해야합니까? 그 값을 생성자에 전달하거나 속성을 설정하십시오. – Jason
당신에게이 사실에 대해 정말 유감입니다. 하지만 코딩 할 때 upls가 내게 어떻게 말해 줄 수 있니? VM 코드를 질문에 포함 시켰습니다. 내 홈 페이지의 ItemCode를 VM에 전달해야합니다. ItemsList = result.Where (x => x.ItemCode == "") .ToList(); – user1508599