2017-02-06 1 views
-3

Я пытаюсь динамически строить плитки в Scrollviewer. Все данные поступают из List<myclass>, который заполняется из веб-службы.C# wpf Mahapps Плитка в коде или с привязкой к данным и пользовательским DataTemplate

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

ответ

0

ScrollViewer - это элемент управления контентом. Чтобы отобразить список элементов, таких как плитки, вам необходимо использовать свойство ItemsSource элемента управления элементами, например ListView или ItemsControl.

Других слов, вы должны связать свой список ItemsSource из ListView в использовании {Binding ...} синтаксиса и убедившись, что вы установите DataContext от просмотра и ваш список является частью этого DataContext класса, как правило, ViewModel.

0

Просто для справки и спасибо за подсказку/помощь. Ниже приводится решение. Я надеюсь, что это правильно и нормально его предоставить.

<ScrollViewer Grid.Row="1" x:Name="VisitPlanScrollView" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Disabled" Margin="20,0,20,0"> 
      <ItemsControl Name="VisitPlanItems" ItemsSource="{Binding}" > 
       <ItemsControl.ItemsPanel> 
        <ItemsPanelTemplate> 
         <StackPanel Orientation="Horizontal" ></StackPanel> 
        </ItemsPanelTemplate> 
       </ItemsControl.ItemsPanel> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <Controls:Tile x:Name="VisitPlanTile" Click="TileClick" > 
          <Controls:Tile.Style> 
           <Style TargetType="Controls:Tile"> 
            <Setter Property="IsEnabled" Value="True"></Setter> 
            <Setter Property="Background" Value="#FF0068B3"></Setter> 
            <Style.Triggers> 
             <DataTrigger Binding="{Binding bIsEmptyPlan}" Value="True"> 
              <Setter Property="IsEnabled" Value="False"></Setter> 
              <Setter Property="Background" Value="DarkGray"></Setter> 
             </DataTrigger> 
            </Style.Triggers> 
           </Style> 
          </Controls:Tile.Style> 
          <Grid HorizontalAlignment="Center"> 
           <Grid.RowDefinitions> 
            <RowDefinition Height="50"></RowDefinition> 
            <RowDefinition Height="*"></RowDefinition> 
            <RowDefinition Height="30"></RowDefinition> 

           </Grid.RowDefinitions> 

           <Label Content="{Binding VisitPlanTitelSub}" Foreground="White" FontSize="16" HorizontalAlignment="Center"></Label> 
           <Label x:Name="ibsSubTitle" Grid.Row="1" Content="{Binding VisitPlanID}" Foreground="White" HorizontalAlignment="Center"></Label> 
           <StackPanel Orientation="Horizontal" Grid.Row="2" HorizontalAlignment="Center"> 
            <Label x:Name="TileDetailCount" Content="{Binding VisitPlanDetailCount}" Foreground="White" FontWeight="Bold" HorizontalAlignment="Center" ></Label> 
            <Button x:Name="button_CreatenewReminderVPTile" Click="button_CreatenewReminderVPTile_OnClick" ToolTip="Erstellt eine neue Wiedervorlage zu diesem Besuchsplan." > 
             <Button.Style> 
              <Style TargetType="Button"> 
               <Setter Property="Background" Value="#FF0068B3" ></Setter> 
               <Setter Property="BorderBrush" Value="#FF0068B3"></Setter> 
               <Setter Property="Background" Value="#FF0068B3" ></Setter> 
               <Setter Property="BorderBrush" Value="#FF0068B3"></Setter> 
               <Style.Triggers> 
                <DataTrigger Binding="{Binding bIsEmptyPlan}" Value="True"> 
                 <Setter Property="Background" Value="DarkGray" ></Setter> 
                 <Setter Property="BorderBrush" Value="DarkGray"></Setter> 
                 <Setter Property="Foreground" Value="DarkGray"></Setter> 
                 <Setter Property="BorderThickness" Value="0"></Setter> 
                 <Setter Property="Visibility" Value="Collapsed"></Setter> 
                </DataTrigger> 
               </Style.Triggers> 
              </Style> 
             </Button.Style> 
             <iconPacks:PackIconModern Kind="Notification" Foreground="White"> 
              <iconPacks:PackIconModern.Style> 
               <Style TargetType="iconPacks:PackIconModern"> 
                <Setter Property="Background" Value="#FF0068B3" ></Setter> 
                <Setter Property="BorderBrush" Value="#FF0068B3"></Setter> 
                <Style.Triggers> 
                 <DataTrigger Binding="{Binding bIsEmptyPlan}" Value="True"> 
                  <Setter Property="Background" Value="DarkGray" ></Setter> 
                  <Setter Property="BorderBrush" Value="DarkGray"></Setter> 
                  <Setter Property="Foreground" Value="DarkGray"></Setter> 
                 </DataTrigger> 
                </Style.Triggers> 
               </Style> 
              </iconPacks:PackIconModern.Style> 
             </iconPacks:PackIconModern> 
            </Button> 
           </StackPanel> 

          </Grid> 
         </Controls:Tile> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 
     </ScrollViewer> 

 Смежные вопросы

  • Нет связанных вопросов^_^