AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.03.2014, 17:36   #1  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Как получить свойства .net контролов?
Есть форма. на ней ManagedHost ( имя - DynamicGridCtrl )
Хост привязан к System.Windows.Controls.Grid
Но почему-то многие из свойств грида , кот описаны в http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx отсутствуют в выпадающем списке intelliSense. Как , например, получить свойство Grid.ColumnProperty ??

Проблема: Чтобы вывести txtBlock1 в ячейке грида, нужно указать
X++:
txtBlock1.SetValue(  Grid.ColumnProperty, colNum);
txtBlock1.SetValue(  Grid.RowProperty, rowNum);[
но этого свойства нет в списке. Как добраться до него ?
(делаю как вот тут )
В форме пишу такой инит. 
X++:
public void init()
{
    System.Windows.Controls.ColumnDefinition gridCol1 = new System.Windows.Controls.ColumnDefinition();
    System.Windows.Controls.ColumnDefinition gridCol2 = new System.Windows.Controls.ColumnDefinition();
 
    System.Windows.Controls.RowDefinition gridRow1 = new System.Windows.Controls.RowDefinition();
    System.Windows.Controls.RowDefinition gridRow2 = new System.Windows.Controls.RowDefinition();
  
    System.Windows.Controls.TextBlock txtBlock1 = new System.Windows.Controls.TextBlock();
    System.Windows.Controls.TextBlock txtBlock2 = new System.Windows.Controls.TextBlock();
    System.Windows.Controls.ColumnDefinitionCollection ColumnDefinitions;
    System.Windows.Controls.RowDefinitionCollection RowDefinitions;    
    System.Windows.Controls.Grid  DynamicGrid;    
    System.Windows.Controls.UIElementCollection  Children;  
    ;
    super();    
    
    DynamicGrid = DynamicGridCtrl.control();  
    
    ColumnDefinitions = DynamicGrid.get_ColumnDefinitions();  
    ColumnDefinitions.Add(gridCol1);
    ColumnDefinitions.Add(gridCol2);
    
    RowDefinitions = DynamicGrid.get_RowDefinitions();     
    RowDefinitions.Add(gridRow1);    
    RowDefinitions.Add(gridRow2);
    
    txtBlock1.AddText( "My text 1");
    txtBlock1.set_FontSize( 14);
    txtBlock1.SetValue(     Grid.ColumnProperty, 1);
    txtBlock1.SetValue(     Grid.RowProperty, 1);
    
    txtBlock2.AddText( "My Text 2");
    txtBlock2.set_FontSize( 14);     
    
    Children = DynamicGrid.get_Children();
    Children.Add(txtBlock1);
    Children.Add(txtBlock2);
  
}

Последний раз редактировалось IKA; 17.03.2014 в 18:05.
Старый 17.03.2014, 17:44   #2  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
методы Grid.setRow и grid.SetColumn тоже отсутствуют
Судя по примеру в мсдн, все должно быть доступно даже в 3.0

Последний раз редактировалось IKA; 17.03.2014 в 17:55.
Старый 17.03.2014, 18:34   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от IKA Посмотреть сообщение
Есть форма. на ней ManagedHost ( имя - DynamicGridCtrl ) Хост привязан к System.Windows.Controls.Grid. Но почему-то многие из свойств грида , кот описаны в http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx отсутствуют в выпадающем списке intelliSense. Как , например, получить свойство Grid.ColumnProperty ??
Для доступа к значениям свойств из X++ нужно явно использовать методы-аксессоры get/set, в частности, чтобы получить значение свойства Grid.ColumnProperty, нужно вызвать Grid.get_ColumnProperty().
Старый 17.03.2014, 19:19   #4  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Я бы с радостью даже не писала этот пост, если бы так оно и было.
Но это не так. Например , для ColumnDefinitions есть только get_ColumnDefinitions() (set_ColumnDefinitions()- нет), а для ColumnProperty , о котором я пишу, так вообще нет аксессоров
Старый 17.03.2014, 20:10   #5  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Во-первых, описание свойств объекта Grid следует смотреть для .NET Framework 3.0: класс System.Windows.Controls.Grid реализован в сборке PresentationFramework, а в References добавлена ссылка на версию 3.0.0.0 этой сборки. В MSDN написано, что свойство Grid.ColumnDefinitions "gets a ColumnDefinitionCollection", т.е. это свойство только для чтения (в противном случае было бы написано "gets or sets", как, скажем, для ClipToBounds или ContextMenu). Во-вторых, у Grid на самом деле нет свойства ColumnProperty - обратите внимание, что в приведенном примере переменная-grid называется MyGrid, в то время как методу TextBox.SetValue() передается Grid.ColumnProperty и Grid.ColumnProperty, т.е. передаются вовсе не значения свойств MyGrid, а идентификаторы т.н. DependencyProperty самого TextBox'а, см. описание метода SetValue.
Старый 17.03.2014, 20:35   #6  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Именно потому что передаются идентификаторы. у меня в коде не DynamicGrid.ColumnProperty в setValue а Grid.
Но даже если писать system.Windows.Controls.Grid.ColumnProperty и тоже не распознается в качестве параметра setValue.

Как нужно к нему обращаться, я уже все перепробовала (?

Последний раз редактировалось IKA; 17.03.2014 в 20:55.
Старый 18.03.2014, 19:10   #7  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
на вопрос "как" ответа нету ..
Старый 21.03.2014, 19:25   #8  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Lightbulb
Цитата:
Сообщение от IKA Посмотреть сообщение
на вопрос "как" ответа нету ..

Ну почему же... Есть

X++:
    System.Windows.Controls.Grid::SetRow(txtBlock1, 0);
    System.Windows.Controls.Grid::SetColumn(txtBlock1, 0);
__________________
Axapta non erubescit
Старый 04.06.2015, 12:36   #9  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
296 / 854 (29) +++++++
Регистрация: 23.10.2012
?
Добрый день!
Мой вопрос, не о свойствах контролов, а о их добавлении.
Есть метод "add" в "System.Windows.Forms.Control.ControlCollection"
Чем через Х++ до него достучаться?
X++:
Object ControlCollection =  System.Windows.Forms.get_Controls();
...
ControlCollection.add(SomeControl);
Дает CLR ошибку.

Последний раз редактировалось Товарищ ♂uatr; 04.06.2015 в 12:44.
Старый 04.06.2015, 13:24   #10  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Цитата:
Сообщение от Товарищ ♂uatr Посмотреть сообщение
Дает CLR ошибку.
Какую?
__________________
Axapta non erubescit
За это сообщение автора поблагодарили: Товарищ ♂uatr (1).
Старый 04.06.2015, 15:55   #11  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
296 / 854 (29) +++++++
Регистрация: 23.10.2012
Цитата:
Сообщение от b_nosoff Посмотреть сообщение
Какую?
Поместил в
try {}
catch {}
и О_О заработало, да и без них, тоже теперь. Не помню, чтобы менял синтаксис написания. Спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
fed: Net requirements update in MRP Module and Working Set of MRP Blog bot DAX Blogs 14 08.05.2012 13:09
AX.NET: интеграция .NET-приложений с Аксаптой и (будущие) возможности облачных вычислений gl00mie DAX: Программирование 2 23.04.2010 00:47
Получить значения контролов в ExecuteSection? CDan DAX: Программирование 6 19.08.2008 15:01
Inside Dynamics AX 4.0: Working with the .NET Business Connector Blog bot DAX Blogs 0 04.10.2007 05:15

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:34.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.