私はScrollviewerで動的にタイルを構築しようとしています。すべてのデータは、Webサービスから入力されたList<myclass>
から来ます。c#wpf MahappsタイルコードまたはデータバインディングとカスタムDataTemplate
DataTemplateは、2つのラベルと画像を持つグリッドにする必要があります。これまでさまざまなアプローチを試みましたが、今までの基本を理解できないようです。誰かが例を挙げて私を助けてくれますか?
私はScrollviewerで動的にタイルを構築しようとしています。すべてのデータは、Webサービスから入力されたList<myclass>
から来ます。c#wpf MahappsタイルコードまたはデータバインディングとカスタムDataTemplate
DataTemplateは、2つのラベルと画像を持つグリッドにする必要があります。これまでさまざまなアプローチを試みましたが、今までの基本を理解できないようです。誰かが例を挙げて私を助けてくれますか?
ScrollViewer
はコンテンツコントロールです。タイルなどのアイテムのリストを表示するには、ListView
またはItemsControl
などのアイテムコントロールのItemsSource
プロパティを使用する必要があります。言い換えれば
あなたは{Binding ...}
構文を使用して、あなたが見るのDataContext
を設定し、あなたのリストは、そのDataContext
クラスの一部、一般的にViewModel
であることを確認することListView
のItemsSource
にあなたのリストをバインドする必要があります。
ちょっと参考にしていただきありがとうございます。以下はその解決策です。私はそれが正しいとそれを提供することを願っています。
<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>