【发布时间】:2016-12-24 10:47:01
【问题描述】:
我正在构建一个带有组合框和数据网格的 wpf 表单。组合框绑定到模型基类 moWeek 的集合。所选项目绑定到一个名为 wm 的派生类,例如 SelectedItem="{Binding Week, Mode=TwoWay}",而只是 Viewmodel 类中 vm 类型的属性。
现在,当我从组合框中选择一个值时,我得到一个名为 TypeConverter 的 System.NotSupportedException 无法转换 model.moWeek。
我想我需要某种从 moWeek 到 vmWeek 的转换器,但我不知道在哪里以及如何放置它。我该怎么做?
代码如下:
模特周班:
using System.Collections.ObjectModel;
namespace Model
{
public class moWeek
{
public moWeek()
{
}
private int id;
public int Id
{
get { return id; }
set { id = value; }
}
}
}
Viewmodel 周课:
using System;
using System.ComponentModel;
using Model;
using ViewModel.Lists;
namespace ViewModel.Planning
{
public class vmWeek : moWeek
{
private ProjectList projects;
public ProjectList Projects
{
get { return projects; }
set { projects = value; OnPropertyChanged(new PropertyChangedEventArgs("Projects")); }
}
private void OnPropertyChanged(PropertyChangedEventArgs propertyChangedEventArgs)
{
throw new NotImplementedException();
}
}
}
视图模型
using System.ComponentModel;
using tegViewModel.Auswahllisten;
namespace tegViewModel.Planning
{
public class vmPlanning : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public vmPlanning()
{
Weeks = new alWeeks(); //Collection of moWeek
}
public alWeeks Weeks { get; set; }
private vmWeek week;
public vmWeek Week
{
get { return Week; }
set { Week = value; OnPropertyChanged(new PropertyChangedEventArgs("Week")); }
}
private void OnPropertyChanged(PropertyChangedEventArgs propertyChangedEventArgs)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyChangedEventArgs.PropertyName));
}
}
}
}
【问题讨论】: