Silverlight: вопрос о синтаксисе для установки значений - PullRequest
1 голос
/ 11 декабря 2010

Я использую Silverlight 4. Следующий XAML работает нормально:

<UserControl.Resources>
    <ItemsPanelTemplate x:Key="WrapPanelTemplate">
        <toolkit:WrapPanel />
    </ItemsPanelTemplate>
</UserControl.Resources>

    <ItemsControl x:Name="restOfHits" 
                  ItemsSource="{Binding RestOfHits}" 
                  ItemsPanel="{StaticResource WrapPanelTemplate}"
                  ItemTemplate="{StaticResource FileTemplate}"
                  Width="500"
                  Margin="0,50,0,0"
                  />

Однако из-за следующих причин VS жалуется:

    <ItemsControl x:Name="restOfHits" 
                  ItemsSource="{Binding RestOfHits}" 
                  ItemTemplate="{StaticResource FileTemplate}"
                  Width="500"
                  Margin="0,50,0,0"
                  >
        <ItemsControl.ItemsPanel>
            <toolkit:WrapPanel />
        </ItemsControl.ItemsPanel>
    </ItemsControl>

Ошибка:

Свойство ItemsPanel не поддерживает значения типа WrapPanel.

Почему это так?Как правильно указать, что ItemsControl должен использовать WrapPanel, если я не хочу использовать ресурсы?

1 Ответ

2 голосов
/ 11 декабря 2010

Потому что ItemsPanel ожидает получения ItemsPanelTemplate и ничего больше.Вы делаете это в своем первом примере, но не во втором.Ваш второй должен выглядеть так: -

<ItemsControl x:Name="restOfHits"  
              ItemsSource="{Binding RestOfHits}"  
              ItemTemplate="{StaticResource FileTemplate}" 
              Width="500" 
              Margin="0,50,0,0" 
              > 
    <ItemsControl.ItemsPanel> 
        <ItemsPanelTemplate>  
            <toolkit:WrapPanel />  
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel> 
</ItemsControl> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...