Привязка перечисления DayOfWeek к пользовательской сетке управления календарем - PullRequest
0 голосов
/ 03 сентября 2010

Для очень настраиваемого элемента управления календаря мне нужно иметь недельный объект и привязывать объекты дня в пределах этой недели к сетке.Я решил, что перечисление DayOfWeek решит, куда должен идти день в сетке.Таким образом, если месяц начинается во вторник, он будет иметь свойство Grid.Column = "2".Но по какой-то причине все они попадают в первый столбец, и я не знаю почему.

    <ItemsControl ItemsSource="{Binding Weeks}" SnapsToDevicePixels="True">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <ItemsControl ItemsSource="{Binding Days}"> <!--7 most of the time-->
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="28" />
                                    <ColumnDefinition Width="28" />
                                    <ColumnDefinition Width="28" />
                                    <ColumnDefinition Width="28" />
                                    <ColumnDefinition Width="28" />
                                    <ColumnDefinition Width="28" />
                                    <ColumnDefinition Width="28" />
                                </Grid.ColumnDefinitions>
                            </Grid>
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Date.Day}" Grid.Column="{Binding DayOfWeekInt}"/>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

И у меня есть такая привязка к свойству объекта day, например:*

Есть идеи?

1 Ответ

0 голосов
/ 03 сентября 2010

Оказывается, что ItemsControl обернул TextBlock ContentPresenter, маскируя Grid.Column в TextBlock.Это можно облегчить, установив стиль в ContentPresenter:

<ItemsControl.Resources>
    <Style TargetType="{x:Type ContentPresenter}">
        <Setter Property="Grid.Column" Value="{Binding Path=DayOfWeekInt}" />
     </Style>
</ItemsControl.Resources>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...