объясняет, что полученный код Столбцы, и как их использовать.р><р класса="step_content ">в центре внимания этой статьи будет "событие производные столбцы". & мочекаменная января Норд & г. Сант андреу н (Борланд) указал мне в сторону эти вещи в последнее время, когда я его спросил, как решить проблему с GUI у меня не было. & Джон, когда я использовал смелые для Delphi была действительно очень хороший компонент GUI называется BoldSelectionListBox. & мочекаменная этот компонент позволит мне Показать список элементов с checkbox рядом с каждой строкой, тикают / убрать галочку в окне добавить / удалить элемент ассоциации между элементом & мочекаменная выбран и каким-либо другим объектом моего выбора. & Джон, что это не лучшее объяснение в мире, поэтому взгляни на следующие UML-схемы:р><р класса="step_content "><р выровнять="центр">р><р класса="step_content "><р выровнять="левой">на этой схеме что-то у меня на работе была недавно в ЭКО второй. & мочекаменная это моя интерпретация информации, необходимой для создания пользовательского интерфейса Индуктивный. & Джон, глядя на UML-схему внимательно, вы увидите, что каждая задача имеет ноль или много PermittedRoles (роль) ссылки. & мочекаменная идею о том, что, определяя роль текущего пользователя я могу легко получить список задач, которые они могут выполнять.р><р класса="step_content "><р выровнять="левой">с помощью этого BoldSelectionListBox я мог бы указать задачу в качестве контекста, а затем список всех ролей в CheckListBox. & мочекаменная клещей будет появляться все галочки, где роль разрешенных для выполнения перечисленных действий, и нет галочки там где его нет. & мочекаменная лишние умная часть курса является то, что, отметив флажок полужирный бы создать объект связи, необходимой, чтобы связать роль с этой задачей, и добавить его в роль.AllowedTasks (и, конечно, задача.PermittedRoles).р><р класса="step_content "><р выровнять="левой">видя, что ЭКО II не вносит никаких элементов интерфейса (вместо этого он предоставляет .чистая привязка данных интерфейсов, так что вы можете использовать стандартные элементы управления), я подозревал, что я не смог бы добиться такой же эффект. & мочекаменная января любезно прислал мне небольшой пример, объясняющий, как добиться этого, используя только сетки данных. & Джон, я только имел эту логику в мои собственные приложения, и он прекрасно работал!р><р класса="step_content "><р выровнять="левой">я добавил выражение ручки для моих ролей (ehRoles) и задачи (ehTasks), связать их в сетку друг и добавил, добавлять / удалять кнопки. & Джон я каждое из этих выражений ручки для извлечения всех случаях "ролей.allInstances" и "задачи.allInstances".р><р класса="step_content "><р выровнять="левой">на левой стороне моего интерфейса я имел все мои перечисленные задачи, а справа у меня все мои роли. & Джон, я сейчас хотел добавить & и nbsp флажок рядом с каждой роли, так что я могу указать, является ли роль разрешенных для выполнения выбранной задачи или нет. & мочекаменная первая проблема, для решения нужно знать, какая задача является "выбранного" один. & фитоэстрогены для этого я добавил CurrencyManagerHandle по имени "chTasks", установить ее RootHandle в ehTasks, и его восстановления команда bindingcontext для TasksDataGrid. & мочекаменная теперь chTasks проводит текущую задачу, приятно и легко.р><р класса="step_content ">далее мне нужно получить столбец флажок в ... мочекаменная мой RolesDataGrid и установить AllowNull значение false. & фитоэстрогены для этого я добавил поддельные колонки TaskPermitted в ehRoles и типом системы.Булево. & мочекаменная Примечание: кнопка "Добавить" в редакторе столбцов имеет значок приложения рядом с ним, нажмите и выберите EventDerivedColumn. & Джон, я потом добавил & мочекаменная дополнительный столбец в моей RolesDataGrid, чтобы убедиться, что это был флажок, я выбрал в выпадающем списке на кнопке Добавить и некоторые DataGridBoolColumn. & Джон я поставил Имя_отображения в TaskPermitted.
ир><р класса="step_content "><р выровнять="левой">до сих пор у нас есть все, чтобы увидеть флажки, но нет способа, чтобы сказать в datagrid ли чекбокс должен быть отмечен или нет. & фитоэстрогены для этого нам нужно написать код, в случае ehRoles' DeriveValue, но сначала я хочу добавить кое-что, Джон, чтобы ... мочекаменная код немного легче писать. & евро & евро я добавил новый ExpressionHandle ehTasksPermittedRoles, в RootHandle был CurrencyHandle (chTasks) и выражение "себя.PermittedRoles". & мочекаменная это позволит мне легко проверить, какие роли могут выполнять "текущую задачу".р><р класса="step_content ">теперь & мочекаменная написать некоторый код для расчета стоимости ehRoles.TaskPermitted. & мочекаменная это делается в ehRoles.Событие DeriveValue, вот так:р><р класса="step_content ">тег
Частная ehRoles_DeriveValue недействительным(объект отправителя, Борланд.ЭКО.Ручками.DeriveEventArgs е) и
{
и & мочекаменная переключатель (e.Имя) //Одно событие для всех производных столбцов<див класс='embed_block_0'> <див ИД="блок-google_admanager-1" класса="блок блок-google_admanager области-другие области-количество-1 Количество-1 блок-Без названия "> <див класс="блок-топ">див> <див класс="блок-внутренний"> <див класс="содержание"> див> <див класс="блок-дна">див> див> див> див><див класс='embed_block_1'><див>див>див>
& мочекаменная {
& евро & евро & евро чехол "TaskPermitted":
& евро & евро & евро & евро & покупка //получаем список разрешенных ролей для этой задачир><р класса="step_content "> & евро & евро & евро & евро & евро IElementCollection роли = ehTasksPermittedRoles.Элемент как IElementCollection р><р класса="step_content "> & евро & евро & евро & евро & покупка //не пустая ссылка исключениер><р класса="step_content "> & евро & евро & евро & евро & евро если (ролей == нуль)
& евро & евро & евро & евро & евро {
& евро & евро & евро & евро & евро & евро & покупка //вернуть элемент, представляющий постоянные "ложные"и
& евро & евро & евро & евро & евро & евро & евро е.ResultElement = EcoSpace.VariableFactoryService.CreateConstant(ложное), что
& евро & евро & евро & евро & евро & евро & евро вернуться
& евро & евро & евро & евро & евро }р><р класса="step_content "> & евро & евро & евро & евро & покупка //соблюдать ehTaskPermittedRoles элемент, это говорит нам, когда элемент
& евро & евро & евро & евро & покупка //изменения, так что мы можем аннулировать графический интерфейс и
& евро & евро & евро & евро & евро ehTasksPermittedRoles.SubscribeToElement(электронная.ResubscribeSubscriber) р><р класса="step_content "> & евро & евро & евро & евро & покупка //также наблюдать элементы внутри списка
& евро & евро & евро & евро & евро ролей.SubscribeToValue(электронная.ValueChangeSubscriber) р><р класса="step_content "> & евро & евро & евро & евро & покупка //если разрешено ролей содержит текущую роль затем вернуться
& евро & евро & евро & евро & покупка //элемент, представляющий постоянное "правда"р><р класса="step_content "> & евро & евро & евро & евро & евро если (ролей.Содержит(электронная.RootElement))
& евро & евро & евро & евро & евро & евро & мочекаменная е.ResultElement = EcoSpace.VariableFactoryService.CreateConstant(правда), что
& евро & евро & евро & евро & евро еще и
& евро & евро & евро & евро & евро & евро & покупка //в противном случае возвращает элемент, представляющий постоянные "ложные"и
& евро & евро & евро & евро & евро & евро & евро е.ResultElement = EcoSpace.VariableFactoryService.CreateConstant(ложное), что
& мочекаменная
& евро & евро & евро & евро & евро каникул. & евро & евро & евро по умолчанию:
& евро & евро & евро & мочекаменная бросить новое исключение(электронная.Название "не происходит должным образом") и
& мочекаменная }//переключатель
В }//ehRoles_DeriveValueр><р класса="step_content ">элемент blockquote>р><р класса="step_content ">и наконец & поваренная мы должны иметь способ, чтобы позволить пользователю, установив / сняв флажок и иметь соответствующие ассоциации добавлены или удалены из задач.PermittedRoles. & мочекаменная это делается в ehRoles.Событие ReverseDeriveValue, вот так
в тег
Частная ehRoles_ReverseDeriveValue недействительным(объект отправителя, Борланд.ЭКО.Ручками.ReverseDeriveEventArgs е) и
{
и & мочекаменная переключатель(e.Наименование) //одно событие для всех производных столбцов в
& мочекаменная {
& евро & евро & евро чехол "TaskPermitted": есть
& евро & евро & евро & евро & покупка //получаем список разрешенных ролей для текущего задания, что
& евро & евро & евро & евро & евро IElementCollection роли = (IElementCollection) ehTasksPermittedRoles.Элемент Цитата>р><р класса="step_content "> & евро & евро & евро & евро & покупка //не пустая ссылка исключение, что
& евро & евро & евро & евро & евро если (ролей == нуль)в
& евро & евро & евро & евро & евро & евро & евро дохода. & евро & евро & евро & евро & покупка //Типизировать значение в логическое (из datagrid флажок) и
& евро & евро & евро & евро & евро если ( (Булево) Эл.Значение) и
& евро & евро & евро & евро & евро {
& евро & евро & евро & евро & евро & евро & покупка //если флажок был установлен, и тикали роль заключается не в том,
& евро & евро & евро & евро & евро & евро & покупка //задач.PermittedRoles списке, то добавьте его
& евро & евро & евро & евро & евро & евро & евро, если (!роли.Содержит(электронная.RootElement))
& евро & евро & евро & евро & евро & евро & евро & евро & евро ролей.Добавить(Эл.RootElement)
& евро & евро & евро & евро & евро }
& евро & евро & евро & евро & евро еще и
& евро & евро & евро & евро & евро {
& евро & евро & евро & евро & евро & евро & покупка //если флажок был снят, и тикали роль существует в том,
& евро & евро & евро & евро & евро & евро & евро //задач.PermittedRoles список, а затем удалить его
& евро & евро & евро & евро & евро & евро & евро если (ролей.Содержит(электронная.RootElement))
& евро & евро & евро & евро & евро & евро & евро & евро & евро ролей.Удалить(Эл.RootElement)
& евро & евро & евро & евро & евро }
& евро & евро & евро & евро & евро разрыва
& мочекаменная }//переключатель
В }//ehRoles_ReverseDeriveValue р><р класса="step_content ">это может занять немного привыкнуть, но если вы читаете это через несколько раз вы должны быть в состоянии получить jist его. & фитоэстрогены в основном это дает разработчику власть отменила производные атрибуты для использования исключительно в графическом интерфейсе. & мочекаменная это означает, что мы можем сделать некоторые умные вещи с ЭКО второй объекты без включения обратного производные атрибуты в модели для того чтобы удовлетворять требования к ГУИ.р><р класса="step_content "> & мочекаменная р><дел стиль= \ ясно:оба поплавка:нет'>дел><дел стиль= \ ясно:оба поплавка:нет'> & мочекаменная див>
Код производных столбцов в ЭКО второй
Код производных столбцов в ЭКО второй : Несколько тысяч советов, которые сделают вашу жизнь проще.
объясняет, что полученный код Столбцы, и как их использовать.р><р класса="step_content ">в центре внимания этой статьи будет "событие производные столбцы". & мочекаменная января Норд & г. Сант андреу н (Борланд) указал мне в сторону эти вещи в последнее время, когда я его спросил, как решить проблему с GUI у меня не было. & Джон, когда я использовал смелые для Delphi была действительно очень хороший компонент GUI называется BoldSelectionListBox. & мочекаменная этот компонент позволит мне Показать список элементов с checkbox рядом с каждой строкой, тикают / убрать галочку в окне добавить / удалить элемент ассоциации между элементом & мочекаменная выбран и каким-либо другим объектом моего выбора. & Джон, что это не лучшее объяснение в мире, поэтому взгляни на следующие UML-схемы:р><р класса="step_content "><р выровнять="центр">р><р класса="step_content "><р выровнять="левой">на этой схеме что-то у меня на работе была недавно в ЭКО второй. & мочекаменная это моя интерпретация информации, необходимой для создания пользовательского интерфейса Индуктивный. & Джон, глядя на UML-схему внимательно, вы увидите, что каждая задача имеет ноль или много PermittedRoles (роль) ссылки. & мочекаменная идею о том, что, определяя роль текущего пользователя я могу легко получить список задач, которые они могут выполнять.р><р класса="step_content "><р выровнять="левой">с помощью этого BoldSelectionListBox я мог бы указать задачу в качестве контекста, а затем список всех ролей в CheckListBox. & мочекаменная клещей будет появляться все галочки, где роль разрешенных для выполнения перечисленных действий, и нет галочки там где его нет. & мочекаменная лишние умная часть курса является то, что, отметив флажок полужирный бы создать объект связи, необходимой, чтобы связать роль с этой задачей, и добавить его в роль.AllowedTasks (и, конечно, задача.PermittedRoles).р><р класса="step_content "><р выровнять="левой">видя, что ЭКО II не вносит никаких элементов интерфейса (вместо этого он предоставляет .чистая привязка данных интерфейсов, так что вы можете использовать стандартные элементы управления), я подозревал, что я не смог бы добиться такой же эффект. & мочекаменная января любезно прислал мне небольшой пример, объясняющий, как добиться этого, используя только сетки данных. & Джон, я только имел эту логику в мои собственные приложения, и он прекрасно работал!р><р класса="step_content "><р выровнять="левой">я добавил выражение ручки для моих ролей (ehRoles) и задачи (ehTasks), связать их в сетку друг и добавил, добавлять / удалять кнопки. & Джон я каждое из этих выражений ручки для извлечения всех случаях "ролей.allInstances" и "задачи.allInstances".р><р класса="step_content "><р выровнять="левой">на левой стороне моего интерфейса я имел все мои перечисленные задачи, а справа у меня все мои роли. & Джон, я сейчас хотел добавить & и nbsp флажок рядом с каждой роли, так что я могу указать, является ли роль разрешенных для выполнения выбранной задачи или нет. & мочекаменная первая проблема, для решения нужно знать, какая задача является "выбранного" один. & фитоэстрогены для этого я добавил CurrencyManagerHandle по имени "chTasks", установить ее RootHandle в ehTasks, и его восстановления команда bindingcontext для TasksDataGrid. & мочекаменная теперь chTasks проводит текущую задачу, приятно и легко.р><р класса="step_content ">далее мне нужно получить столбец флажок в ... мочекаменная мой RolesDataGrid и установить AllowNull значение false. & фитоэстрогены для этого я добавил поддельные колонки TaskPermitted в ehRoles и типом системы.Булево. & мочекаменная Примечание: кнопка "Добавить" в редакторе столбцов имеет значок приложения рядом с ним, нажмите и выберите EventDerivedColumn. & Джон, я потом добавил & мочекаменная дополнительный столбец в моей RolesDataGrid, чтобы убедиться, что это был флажок, я выбрал в выпадающем списке на кнопке Добавить и некоторые DataGridBoolColumn. & Джон я поставил Имя_отображения в TaskPermitted.
ир><р класса="step_content "><р выровнять="левой">до сих пор у нас есть все, чтобы увидеть флажки, но нет способа, чтобы сказать в datagrid ли чекбокс должен быть отмечен или нет. & фитоэстрогены для этого нам нужно написать код, в случае ehRoles' DeriveValue, но сначала я хочу добавить кое-что, Джон, чтобы ... мочекаменная код немного легче писать. & евро & евро я добавил новый ExpressionHandle ehTasksPermittedRoles, в RootHandle был CurrencyHandle (chTasks) и выражение "себя.PermittedRoles". & мочекаменная это позволит мне легко проверить, какие роли могут выполнять "текущую задачу".р><р класса="step_content ">теперь & мочекаменная написать некоторый код для расчета стоимости ehRoles.TaskPermitted. & мочекаменная это делается в ehRoles.Событие DeriveValue, вот так:р><р класса="step_content ">тег
Частная ehRoles_DeriveValue недействительным(объект отправителя, Борланд.ЭКО.Ручками.DeriveEventArgs е) и
{
и & мочекаменная переключатель (e.Имя) //Одно событие для всех производных столбцов<див класс='embed_block_0'> <див ИД="блок-google_admanager-1" класса="блок блок-google_admanager области-другие области-количество-1 Количество-1 блок-Без названия "> <див класс="блок-топ">див> <див класс="блок-внутренний"> <див класс="содержание"> див> <див класс="блок-дна">див> див> див> див><див класс='embed_block_1'><див>див>див>
& мочекаменная {
& евро & евро & евро чехол "TaskPermitted":
& евро & евро & евро & евро & покупка //получаем список разрешенных ролей для этой задачир><р класса="step_content "> & евро & евро & евро & евро & евро IElementCollection роли = ehTasksPermittedRoles.Элемент как IElementCollection р><р класса="step_content "> & евро & евро & евро & евро & покупка //не пустая ссылка исключениер><р класса="step_content "> & евро & евро & евро & евро & евро если (ролей == нуль)
& евро & евро & евро & евро & евро {
& евро & евро & евро & евро & евро & евро & покупка //вернуть элемент, представляющий постоянные "ложные"и
& евро & евро & евро & евро & евро & евро & евро е.ResultElement = EcoSpace.VariableFactoryService.CreateConstant(ложное), что
& евро & евро & евро & евро & евро & евро & евро вернуться
& евро & евро & евро & евро & евро }р><р класса="step_content "> & евро & евро & евро & евро & покупка //соблюдать ehTaskPermittedRoles элемент, это говорит нам, когда элемент
& евро & евро & евро & евро & покупка //изменения, так что мы можем аннулировать графический интерфейс и
& евро & евро & евро & евро & евро ehTasksPermittedRoles.SubscribeToElement(электронная.ResubscribeSubscriber) р><р класса="step_content "> & евро & евро & евро & евро & покупка //также наблюдать элементы внутри списка
& евро & евро & евро & евро & евро ролей.SubscribeToValue(электронная.ValueChangeSubscriber) р><р класса="step_content "> & евро & евро & евро & евро & покупка //если разрешено ролей содержит текущую роль затем вернуться
& евро & евро & евро & евро & покупка //элемент, представляющий постоянное "правда"р><р класса="step_content "> & евро & евро & евро & евро & евро если (ролей.Содержит(электронная.RootElement))
& евро & евро & евро & евро & евро & евро & мочекаменная е.ResultElement = EcoSpace.VariableFactoryService.CreateConstant(правда), что
& евро & евро & евро & евро & евро еще и
& евро & евро & евро & евро & евро & евро & покупка //в противном случае возвращает элемент, представляющий постоянные "ложные"и
& евро & евро & евро & евро & евро & евро & евро е.ResultElement = EcoSpace.VariableFactoryService.CreateConstant(ложное), что
& мочекаменная
& евро & евро & евро & евро & евро каникул. & евро & евро & евро по умолчанию:
& евро & евро & евро & мочекаменная бросить новое исключение(электронная.Название "не происходит должным образом") и
& мочекаменная }//переключатель
В }//ehRoles_DeriveValueр><р класса="step_content ">элемент blockquote>р><р класса="step_content ">и наконец & поваренная мы должны иметь способ, чтобы позволить пользователю, установив / сняв флажок и иметь соответствующие ассоциации добавлены или удалены из задач.PermittedRoles. & мочекаменная это делается в ehRoles.Событие ReverseDeriveValue, вот так
в тег
Частная ehRoles_ReverseDeriveValue недействительным(объект отправителя, Борланд.ЭКО.Ручками.ReverseDeriveEventArgs е) и
{
и & мочекаменная переключатель(e.Наименование) //одно событие для всех производных столбцов в
& мочекаменная {
& евро & евро & евро чехол "TaskPermitted": есть
& евро & евро & евро & евро & покупка //получаем список разрешенных ролей для текущего задания, что
& евро & евро & евро & евро & евро IElementCollection роли = (IElementCollection) ehTasksPermittedRoles.Элемент Цитата>р><р класса="step_content "> & евро & евро & евро & евро & покупка //не пустая ссылка исключение, что
& евро & евро & евро & евро & евро если (ролей == нуль)в
& евро & евро & евро & евро & евро & евро & евро дохода. & евро & евро & евро & евро & покупка //Типизировать значение в логическое (из datagrid флажок) и
& евро & евро & евро & евро & евро если ( (Булево) Эл.Значение) и
& евро & евро & евро & евро & евро {
& евро & евро & евро & евро & евро & евро & покупка //если флажок был установлен, и тикали роль заключается не в том,
& евро & евро & евро & евро & евро & евро & покупка //задач.PermittedRoles списке, то добавьте его
& евро & евро & евро & евро & евро & евро & евро, если (!роли.Содержит(электронная.RootElement))
& евро & евро & евро & евро & евро & евро & евро & евро & евро ролей.Добавить(Эл.RootElement)
& евро & евро & евро & евро & евро }
& евро & евро & евро & евро & евро еще и
& евро & евро & евро & евро & евро {
& евро & евро & евро & евро & евро & евро & покупка //если флажок был снят, и тикали роль существует в том,
& евро & евро & евро & евро & евро & евро & евро //задач.PermittedRoles список, а затем удалить его
& евро & евро & евро & евро & евро & евро & евро если (ролей.Содержит(электронная.RootElement))
& евро & евро & евро & евро & евро & евро & евро & евро & евро ролей.Удалить(Эл.RootElement)
& евро & евро & евро & евро & евро }
& евро & евро & евро & евро & евро разрыва
& мочекаменная }//переключатель
В }//ehRoles_ReverseDeriveValue р><р класса="step_content ">это может занять немного привыкнуть, но если вы читаете это через несколько раз вы должны быть в состоянии получить jist его. & фитоэстрогены в основном это дает разработчику власть отменила производные атрибуты для использования исключительно в графическом интерфейсе. & мочекаменная это означает, что мы можем сделать некоторые умные вещи с ЭКО второй объекты без включения обратного производные атрибуты в модели для того чтобы удовлетворять требования к ГУИ.р><р класса="step_content "> & мочекаменная р><дел стиль= \ ясно:оба поплавка:нет'>дел><дел стиль= \ ясно:оба поплавка:нет'> & мочекаменная див>