к каждому TreeNode прилагается тег который берет данные из таблицы базы данных и присваивает их TreeNode:
public class InfoTag
{
public ObjectTYPE ObjectTYPE; //тип объекта (перечисление)
public int L1; //первый ключ
public int L2; //второй ключ
public string NAME; //название префикса
public string Prefix; //префикс
public InfoTag(){}
}
так вот, в первом уровне TreeView мне нужны значения только ObjectTYPE, int L1, string NAME.
Во втором уровне нужно то же самое, но только вместо int L1 нужно int L2.
В процедуре, которая строит TreeView например, для первого уровня я делаю так:
foreach(DataRow L1_Row in AddPrefix.Tables["L1_ZONE"].Rows)
{
TreeNode Node_L1 = new TreeNode(L1_Row["NAME"].ToString());
Node_L1.Tag = new InfoTag(
ObjectTYPE.ZONE,
(int)L1_Row["L1"],
(string)L1_Row["NAME"]);
treeView1.Nodes.Add( Node_L1 );
}
компилятор мне выдает ошибку и говорит что нужно в Node_L1.Tag перечислить всех членов класса InfoTag.
Подскажите пожалуйста, синтаксис присвоения нулевых значений int L2, string Prefix в Node_L1.Tag.
заранее благодарна
I catch a water on a hook and burn down it on fire!
Здравствуйте, losnaca, Вы писали:
L>к каждому TreeNode прилагается тег который берет данные из таблицы базы данных и присваивает их TreeNode:
L>public class InfoTag
L> {
L> public ObjectTYPE ObjectTYPE; //тип объекта (перечисление)
L> public int L1; //первый ключ
L> public int L2; //второй ключ
L> public string NAME; //название префикса
L> public string Prefix; //префикс
L> public InfoTag(){}
L> }
L>так вот, в первом уровне TreeView мне нужны значения только ObjectTYPE, int L1, string NAME. L>Во втором уровне нужно то же самое, но только вместо int L1 нужно int L2. L>В процедуре, которая строит TreeView например, для первого уровня я делаю так:
Вообще-то я не очень понял. У вас в InfoTag пустой констркутор. Без параметров.
L>foreach(DataRow L1_Row in AddPrefix.Tables["L1_ZONE"].Rows)
L> {
L> TreeNode Node_L1 = new TreeNode(L1_Row["NAME"].ToString());
L> Node_L1.Tag = new InfoTag(// а тут уже с параметрами!
L> ObjectTYPE.ZONE,
L> (int)L1_Row["L1"],
L> (string)L1_Row["NAME"]);
L> treeView1.Nodes.Add( Node_L1 );
L> }
L>компилятор мне выдает ошибку и говорит что нужно в Node_L1.Tag перечислить всех членов класса InfoTag. L>Подскажите пожалуйста, синтаксис присвоения нулевых значений int L2, string Prefix в Node_L1.Tag.
L>заранее благодарна
И что мешает создать объект констрктором без параметров и инициализировать только нужные свойства? Или создать два конструктор для первого и второго уровня нод?!
Приношу извинения, вообще-то класс для тега целиком выглядит так:
public enum ObjectTYPE
{
ZONE = 1,
PREFIX = 2,
}
public class InfoTag
{
public ObjectTYPE ObjectType;
public int L1;
public int L2;
public string NAME;
public string Prefix;
Здравствуйте, losnaca, Вы писали:
L>Здравствуйте, Chardex,
L>Приношу извинения, вообще-то класс для тега целиком выглядит так:
L>public enum ObjectTYPE L>{ L> ZONE = 1, L> PREFIX = 2, L>} L>public class InfoTag L>{ L> public ObjectTYPE ObjectType; L> public int L1; L> public int L2; L> public string NAME; L> public string Prefix;
L> public InfoTag(){}
L> public InfoTag( ObjectTYPE ObjectType, L> int L1, L> int L2, L> string NAME, L> string Prefix ) L> { L> this.ObjectType = ObjectType; L> this.L1 = L1; L> this.L2 = L2; L> this.NAME = NAME; L> this.Prefix = Prefix; L> } L> public InfoTag( ObjectTYPE ObjectType, L> int L1, L> int L2, L> string NAME) L> { L> this.ObjectType = ObjectType; L> this.L1 = L1; L> this.L2 = L2; L> this.NAME = NAME; L> } L>}
L>когда я в теге определяю только те параметры, которые мне нужны он ругается что должен знать все параметры
Девушка Я не пойму, почему нельзя еще один конструктор создать?