Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Databinding / 8 сообщений из 8, страница 1 из 1
01.04.2004, 10:38
    #32465009
Максим Руденко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Databinding
Хочу написать некий компонент который можно будет привязывать, например к DataGrid. Или там DropDownList, не важно...
Не могу разобраться - пока нашел только, что для того чтобы привязывать компонент, он должен реализовывать интерфейс IList.На этом пока все :)

В общем, как привязать компонент к DataGridу, DropDownListу, etc, через DataSource и Datamember?Как этот компонент должен выглядеть?
...
Рейтинг: 0 / 0
01.04.2004, 12:37
    #32465310
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Databinding
А что компонент делать-то будет? Для чего его привязывать к DataGrid ? Может привязка DataSource ? Или он сам будет a la DataSource ?
...
Рейтинг: 0 / 0
01.04.2004, 12:48
    #32465335
Максим Руденко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Databinding
Он сам будет a la DataSource...

Ну вот я нашел пример...Но как то плохо он работает :)
public class Widget
{

public int Number=0;

public virtual string AMethod()
{

return "This Widget's Number is : "
+ Number.ToString();


}

}

//*****************************************************
//Widgets collection class MUST derive from
//System.Collections.CollectionBase

public class Widgets:CollectionBase
{

public virtual void Add(Widget NewWidget)
{
//forward our Add method on to
//CollectionBase.IList.Add
this.List.Add(NewWidget);

}

//this is the indexer (readonly)
public virtual Widget this[int Index]
{

get
{
//return the Widget at IList[Index]
return (Widget)this.List[Index];

}

}
}

В общем, могу я привязать его к DropDownList. Если переопределю метод ToString() в классе Widget, то все ОК.
Но привязать к DataGrid не получается... Получается пустой грид.Точнее есть строки, но нет столбцов :). Количество он увидел, а вот что выводить видимо не знает...
...
Рейтинг: 0 / 0
01.04.2004, 13:22
    #32465431
Максим Руденко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Databinding
Ага!

Когда я добавил в класс Widget следующее:

public int _Num
{
get {return Number;}
set {Number = value;}
}

public string _Test
{
get
{
return Test;
}
set
{
Test = value;
}
}
В датагриде начало отображаться _Num и _Test.
Теперь интересно следующее:
Вот эти два поля я задал при создании класса, а могу ли я как то их изменять динамически?
...
Рейтинг: 0 / 0
01.04.2004, 13:30
    #32465445
Максим Руденко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Databinding
Э...В смысле не значения полей, а сами поля, добавлять, удалять там...
...
Рейтинг: 0 / 0
01.04.2004, 13:42
    #32465480
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Databinding
Насколько я знаю - нет. Поля только в JavaScript добавляются в любой момент, когда пожелаешь. А C# - строгий язык, компилируемый, при том. А если поля добавлять и удалять когда захочется - это же, простите, бардак будет!
...
Рейтинг: 0 / 0
01.04.2004, 13:51
    #32465506
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Databinding
И ещё одно замечание...
Я тут недавно потыкался, потыкался с элементом, подобным DataGrid , и пришёл к выводу, что практически всё можно сделать комбинацией из стандартных элементов. Это и проще, и быстрее.
...
Рейтинг: 0 / 0
01.04.2004, 14:17
    #32465571
Максим Руденко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Databinding
Вполне возможно...
Просто мне было интересно как работает тогда датасет -
в зависимости от того, какую выборку ты сделаешь, чем датасет заполнишь - датагрид выводит разные поля...
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Databinding / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]