Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > WPF. Binding и CellTemplateSelector


Автор: Flap 22.2.2013, 15:55
Доброго времени суток.

Я делаю сложный грид, в котором количество столбцов зависит от количество дней в месяце.

В связи с этим создаю столбцы и назначаю им биндинг программно примерно так:
Код

for(int i=1; i<days; i++)
{
   Binding b = "DetailedPlan[" + i.ToString() + "].Volume"
бла-бла-бла
}


Мне понадобилось чтобы для некоторых строк, ячейки состояли из двух половинок, т.е. надо прикручивать CellTemplateSelector. Сделал.
Вот один из шаблонов.
Код

<DataTemplate x:Key="MsgCellFirst">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Border BorderThickness="0, 0, 0, 1" Margin="-3" BorderBrush="{Binding MSGColor}">
        <TextBlock Text="{DetailedPlan[  ___???___look_at_me   ].Volume}" Grid.Row="0" TextAlignment="Center" Margin="0, 3, 0, 0"/>
    </Border>
    <TextBlock Text="факт" Grid.Row="1" TextAlignment="Center" Margin="0, 3, 0, 0"/>
</Grid>
</DataTemplate>

Но проблема в том, что я не могу залезть в этот шаблон и программно указать свой биндинг (посколько, шаблон выдает TemplateSelector, а он не знает, что это за столбец)

Кто-нибудь с таким сталкивался? Как обойти это ограничение?

Автор: dzaraev 25.2.2013, 20:48
Можно поподробнее узнать что за "грид" ? и побольше кода в его формировании? smile 
И еще - что это за способ указывать биндинг без ключевого слова "Binding" в XAML и создавать его из строки? (я еще только изучаю wpf)

Автор: Flap 26.2.2013, 12:31
Биндинг я создаю в коде. При этом в конструктор биндинга передается только строка-Path.

Проблему решил через создание шаблона также программно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)