Как передать дополнительное свойство в usercontrol, который находится внутри DataTemplate, в Silverlight - PullRequest
0 голосов
/ 30 октября 2010

У меня есть Itemscontrol в моем xaml, и я вызываю пользовательский элемент управления в DateTemplate ItemsControl следующим образом:

    <ScrollViewer Margin="0,0,0,0" BorderThickness="0">
        <ItemsControl x:Name="itemsStackPanel">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <controls:UserItem Margin="0, 5, 0, 3"></controls:UserItem>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </ScrollViewer>

Я уже назначаю список ItemsControl.

    this.itemsStackPanel.ItemsSource = usersList;

и теперь я хочу передать что-то дополнительное свойство своему пользовательскому элементу управления, который находится внутри DataTemplate, что-то вроде следующего, как мне это сделать?

    <controls:UserItem Margin="0, 5, 0, 3" CurrentColumnInfo={Binding oColumnInfo}></controls:UserItem>

объект oColumnInfo хранится в коде позади.как передать это каждому элементу пользователя?

Ответы [ 2 ]

1 голос
/ 02 ноября 2010

Используйте следующую практику (ей нравится контроль РИА):

Сначала создайте объект-провайдер для вашего oColumnInfo:

открытый класс ObjProvider: Control { открытый объект Object {get; задавать; } }

Во-вторых, создайте экземпляр ObjProvider в вашей разметке:

<! -Дополнительный поставщик недвижимости ->

В-третьих, в вашем шаблоне товара:

В-четвертых, в коде позади

provider.Object = oColumnInfo;

Вот и все

Другой способ (не очень хороший):

Сначала в вашем шаблоне товара

Второе, в коде позади:

this.Resources.Add ("oColumnInfo", oColumnInfo);

// ПРИМЕЧАНИЕ !!!: вы должны сделать это в конструкторе> перед InitializeComponent (), поэтому этот способ не такой гибкий и установка ресурса из кода и привязка к нему в разметке не является хорошей практикой

0 голосов
/ 30 октября 2010

oColumnInfo должен быть частью вашего userList, если вы хотите связать, используя {Binding Path=oColumnInfo}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...