2017-02-06 8 views
-3

私はScrollviewerで動的にタイルを構築しようとしています。すべてのデータは、Webサービスから入力されたList<myclass>から来ます。c#wpf MahappsタイルコードまたはデータバインディングとカスタムDataTemplate

DataTemplateは、2つのラベルと画像を持つグリッドにする必要があります。これまでさまざまなアプローチを試みましたが、今までの基本を理解できないようです。誰かが例を挙げて私を助けてくれますか?

答えて

0

ScrollViewerはコンテンツコントロールです。タイルなどのアイテムのリストを表示するには、ListViewまたはItemsControlなどのアイテムコントロールのItemsSourceプロパティを使用する必要があります。言い換えれば

あなたは{Binding ...}構文を使用して、あなたが見るのDataContextを設定し、あなたのリストは、そのDataContextクラスの一部、一般的にViewModelであることを確認することListViewItemsSourceにあなたのリストをバインドする必要があります。

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> 
関連する問題