【发布时间】:2010-06-09 16:10:08
【问题描述】:
我是 Wpf 世界的新手,所以我创建了几个视图,它们都至少有一个 ComboBox,因为我使用的是 MvvM 模式,所以我总是在同一行重新输入填充 Combo 并获取 SelectedItem 的代码(创建属性、用于填充的私有和其他获取)。
是否有某种框架可以改进这部分?或黑客/技巧???因为我看到太多重复的代码......也许我做错了什么,看看:
XAML:
<ComboBox name= "cbDepartments" DisplayMemberPath="DepartmentName"
SelectedValuePath ="PrimaryKey"
ItemsSource="{Binding Path=Departments}"
SelectedItem="{Binding Path=DefaultBranch,Mode=TwoWay}"
>
视图模型:
private Department defaultBranch;
public Department DefaultBranch
{
get
{
return this.defaultBranch;
}
set
{
if (this.defaultBranch != value)
{
this.defaultBranch = value;
this.OnPropertyChanged("DefaultBranch");
this.saveChangeCommand.RaiseCanExecuteChanged();
this.UserMessage = string.Empty;
}
}
}
private ObservableCollection<Department> departments;
public ObservableCollection<Department> Departments
{
get { return this.departments; }
set
{
if (this. departments!= value)
{
this. departments = value;
this.OnPropertyChanged("Departments");
}
}
}
【问题讨论】:
-
它是同一种 ComboBox(即,您的应用程序中是否有多个用于部门的组合框?)如果是这种情况 - 您可以制作一个具有该部分的自定义控件标记并从 ComboBox 继承
-
@Goblin,感谢您的建议,但我尝试在 wpf 中自定义一个控件,发现这不像 winform 的世界那么容易......