안녕하세요 처음 게시자 너무 실수해서 미안 해요. 내 UWP 앱에 문제가있어서 즐겨 찾기 페이지는 사용자가 페이지의 데이터를 재정렬하고 저장할 수있게합니다. 난 개체 참조가 개체 참조가 요구되는 비 정적 필드, 메소드 또는 속성 'Group.Title'CS0120 t 비 정적 필드, 메서드 또는 속성 'Group.Title'에 대한 개체 참조가 필요합니다.
CS0120 필요 CS0120 두번
에서 동일한 오류가있어 비 정적 필드, 메소드 또는 속성 'Group.Items'
아무에게도 이것이 왜 일어나는지 설명 할 수 있습니까? 감사합니다.
CS 파일
using App1.Common;
using App1.Data;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Windows.Storage;
using Windows.UI.Popups;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using System.Linq;
using System.Threading.Tasks;
using Windows.Data.Json;
namespace App1
{
public sealed partial class test : Page
{
public ObservableCollection<ItemData> Items { get; set; }
private ObservableDictionary defaultViewModel = new
ObservableDictionary();
private NavigationHelper navigationHelper;
private RootObject jsonLines;
private StorageFile fileFavourites;
private Dictionary<string, ItemData> ItemData = new Dictionary<string,
ItemData>();
public test()
{
loadJson();
getFavoritesFile();
this.InitializeComponent();
this.navigationHelper = new NavigationHelper(this);
this.navigationHelper.LoadState += navigationHelper_LoadState;
}
void ItemView_ItemClick(object sender, ItemClickEventArgs e)
{
// Navigate to the appropriate destination page, configuring the new
page
// by passing required information as a navigation parameter
var itemId = ((SampleDataItem)e.ClickedItem).UniqueId;
this.Frame.Navigate(typeof(GroupedItemsPage), itemId);
}
private void setupObservableCollection()
{
Items = new ObservableCollection<ItemData>(ItemData.Values);
itemGridView.ItemsSource = Items;
}
private async void loadJson()
{
var file = await StorageFile.GetFileFromApplicationUriAsync(new
Uri("ms-appx:///DataModel/SampleData.json"));
var lines = await FileIO.ReadTextAsync(file);
jsonLines = JsonConvert.DeserializeObject<RootObject>(lines);
feedItems();
}
private async void getFavoritesFile()
{
Windows.Storage.StorageFolder storageFolder =
Windows.Storage.ApplicationData.Current.LocalFolder;
fileFavourites = await storageFolder.GetFileAsync("Fav.txt");
}
private async void feedItems()
{
if (await FileIO.ReadTextAsync(fileFavourites) != "")
{
foreach (var line in await
FileIO.ReadLinesAsync(fileFavourites))
{
foreach (var Group in jsonLines.Groups)
{
foreach (var Item in Group.Items)
{
if (Item.UniqueId == line)
{
var storage = new ItemData()
{
Title = Item.Title,
UniqueID = Item.UniqueId,
ImagePath = Item.ImagePath,
Group = Group.Title
};
ItemData.Add(storage.UniqueID, storage);
}
}
}
}
}
else
{//if favourites file is empty, use?
foreach (var Group in jsonLines.Groups) ;
{
foreach (var Item in Group.Items)
{
var storage = new ItemData()
{
Title = Item.Title,
UniqueID = Item.UniqueId,
ImagePath = Item.ImagePath,
Group = Group.Title
};
ItemData.Add(storage.UniqueID, storage);
await FileIO.AppendTextAsync(fileFavourites,
Item.UniqueId + "\r\n");
}
}
}
setupObservableCollection();
}
public ObservableDictionary DefaultViewModel
{
get { return this.defaultViewModel; }
}
#region NavigationHelper loader
public NavigationHelper NavigationHelper
{
get { return this.navigationHelper; }
}
private async void MessageBox(string Message)
{
MessageDialog dialog = new MessageDialog(Message);
await dialog.ShowAsync();
}
private async void navigationHelper_LoadState(object sender,
LoadStateEventArgs e)
{
var sampleDataGroups = await SampleDataSource.GetGroupsAsync();
this.defaultViewModel["Groups"] = sampleDataGroups;
}
#endregion NavigationHelper loader
#region NavigationHelper registration
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
navigationHelper.OnNavigatedFrom(e);
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
navigationHelper.OnNavigatedTo(e);
}
#endregion NavigationHelper registration
}
public class ItemData
{
public string UniqueID { get; set; }
public string Title { get; set; }
public string Group { get; set; }
public string ImagePath { get; set; }
}
}
RootObject 파일
using App1.Data;
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace App1
{
public class Item
{
public string UniqueId { get; set; }
public string Title { get; set; }
public string Subtitle { get; set; }
public string ImagePath { get; set; }
public string Description { get; set; }
public string Content { get; set; }
}
public class Group
{
public string UniqueId { get; set; }
public string Title { get; set; }
public string Subtitle { get; set; }
public string ImagePath { get; set; }
public string Description { get; set; }
public List<Item> Items { get; set; }
}
public class RootObject
{
public List<Group> Groups { get; set; }
}
}
당신의 foreach에
또 다른 문제는 foreach 반복 변수의 값을 설정하려고하는 것입니다. – Sefe