匿名型をカスタムクラスでObservableCollectionに返すLINQステートメントの変換に苦労しています。LINQステートメントに満足しています。クラス定義の問題は(私が思うに)、実装方法に関係しています。匿名型とクラス自体の間のIQueryableインターフェイス。
public class CatSummary : INotifyPropertyChanged
{
private string _catName;
public string CatName
{
get { return _catName; }
set { if (_catName != value) { _catName = value; NotifyPropertyChanged("CatName"); } }
}
private string _catAmount;
public string CatAmount
{
get { return _catAmount; }
set { if (_catAmount != value) { _catAmount = value; NotifyPropertyChanged("CatAmount"); } }
}
public event PropertyChangedEventHandler PropertyChanged;
// Used to notify Silverlight that a property has changed.
private void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
//MessageBox.Show("NotifyPropertyChanged: " + propertyName);
}
}
}
private void GetCategoryAmounts()
{
var myOC = new ObservableCollection<CatSummary>();
var myQuery = BoughtItemDB.BoughtItems
.GroupBy(item => item.ItemCategory)
.Select(g => new
{
_catName = g.Key,
_catAmount = g.Sum(x => x.ItemAmount)
});
foreach (var item in myQuery) myOC.Add(item);
}
私が得ているエラーは最後の行にあり、
"Argument 1: cannot convert from 'AnonymousType#1' to 'CatSummary'"
私はc#に比較的慣れていないので、正しい方向を指す必要があります。この種のチュートリアルがあれば、それも役に立ちます。