Как украсить пользовательский элемент в LINQ To SQL - PullRequest
1 голос
/ 08 сентября 2011

Я хочу создать свойство в своем классе, сгенерированном дизайнером LINQ To SQL, который получает и устанавливает форматированный тип, например:

public partial ALinqClass
{
    public string formatedValue
    {
       get { return formatValue(TheValue); }
       set { TheValue = RemoveFormating(value); }
    }
}

TheValue - это свойство, созданное конструктором Linq.

Как мне оформить public string formatedValue, чтобы я мог привязать его к элементам управления в моей форме?Например: когда я использую Visual Studio для создания источника данных объекта из моего объекта / класса linq, все сгенерированные свойства linq присутствуют в источнике данных объекта, а formatedValue - нет.

Почему?

ПОЧЕМУ?

WHHHHHHHHY ???????? !!!!!

Спасибо.

Фабиу

Ответы [ 3 ]

2 голосов
/ 08 сентября 2011

Сгенерированные сущности Linq-to-SQL объявляются как частичные классы, поэтому вы должны иметь возможность создать другой файл и добавить пользовательские свойства к тому же частичному классу. Это так, если вам нужно восстановить классы, ваши дополнения к сущностям по-прежнему доступны в другом файле.

Кроме того, если эти свойства являются общедоступными, вы сможете связывать их с данными, как сгенерированные свойства.

0 голосов
/ 21 сентября 2011

Я думаю, что это ответ, который я хотел. У Linq должно быть еще несколько классов и наследований, но я думаю, что это подойдет.

http://msdn.microsoft.com/en-us/library/system.componentmodel.bindableattribute.aspx

[Bindable(true)]
 public int MyProperty 
 {
    get {
       // Insert code here.
       return 0;
        }

    set {
       // Insert code here.
        }
 }
0 голосов
/ 21 сентября 2011

Для привязки данных Windows Forms вам потребуется либо

  • Источник данных, полученный из Control.

  • Промежуточный компонент,BindingSource, действующий как связь между источником данных LinqToSql и связанными элементами управления.

Я опишу, как использовать BindingSource.

private BindingSource binding1;
private YourDataContext context;

void Form1_Load(object sender, EventArgs e) {
     // initialize the data context
     context = new YourDataContext();
    // initialize the BindingSource
    binding1 = new BindingSource();
    binding1.DataSource = context.YourObjects;
    // bind controls to BindingSource
    listBox1.DataSource = binding1;
    listBox1.DisplayMember = "Name";
}

Очевидно, этоКраткий пример не завершен, но должен дать вам представление о том, как начать.Дополнительную информацию можно найти по адресу Привязка данных и Windows Forms .

Mark

...