在codebehind中使用语句

时间:2015-12-03 21:53:12

标签: wpf namespaces

编辑c#程序时,我的顶部包含带有using关键字的命名空间。例如using System;

我有一些在我的WPF应用程序中冗余实现的类。我想创建一个参考点来使用整个应用程序中的方法。

例如,当我为ComboBoxes执行数据绑定时,我有一个包含此...的类

public class ComboBoxItemSource : ViewModelBase
{
    public ObservableCollection<Item> Source { get; set; }
    public Item Selected { get; set; }
}

我希望将它放在一个地方并将其包含在引用中,而不是在需要组合框绑定的每个ViewModel中创建它。

2 个答案:

答案 0 :(得分:0)

我建议只将该类放在单独的文件中并将其添加到您的项目中。

甚至更简单:

  • 在解决方案资源管理器中右键单击您的项目 - &gt; &#34;添加新项目&#34; - &GT; &#34;级&#34;
  • 将您的班级复制/粘贴到文件中
  • 调整命名空间
  • 将缺少的用法添加到文件中(尤其是用于&#34;查看模型库&#34;)

文件中包含命名空间的类现在看起来类似于:

namespace MyNamespace
{
    public class ComboBoxItemSource : ViewModelBase
    {
        public ObservableCollection<Item> Source { get; set; }
        public Item Selected { get; set; }
    }
}

答案 1 :(得分:0)

你可以这样做。

创建IComboBox界面:

public interface IComboBox
{
   ObservableCollection<Item> Source { get; set; }
   Item Selected { get; set; }
}

然后你可以创建一个继承自ViewModelBase的类并实现你的IComboBox:

public class ComboBoxVM :ViewModelBase, IComboBox
{
    public ObservableCollection<Item> Source
    {
        get
        {
            // do stuff
            return _source;
        }
        set { _source = value; }
    }

    public Item Selected
    {
        get
        {
            // do stuff
            return _selected;
        }
        set { _selected = value; }
    }
}

然后在你的ComboBoxItemSource中,继承自ComboBoxVM:

public class ComboBoxItemSource : ComboBoxVM
{

}

希望这有帮助。