Ahoj, potřeboval bych správně nasměrovat jak vytvořit ListBox( nebo ListView) tak aby v každém ITEMu byl zobrazen Text, vedle ProgressBar a nakonci Image. Počet těch ITEMu bude odvozen od velikosti Listu třídy z modelu.
public class mojeTrida::INotifyPropertyChanged{
public event PropertyChangedEventHandler PropertyChanged;
// pouhe jmeno z pohledu Bindingu staticka hodnota public string MerenaVelicina{ get; set; } // merene zobrazen hodnotu z pohledu bindingu se budou menit v ProgressBaru public int PBMaximum{ get; set; } public int PBOkamzita{ get; set; } // obrazek ktery bude zobrazovat nekolik stavu, nevim zda ho zadat jako Image nebo jako string cestu k obrazku public mujObrazek Obrazek{ get; set; } }
Těch Itemu bude cca 2000 takže by tam měly správně fungovat scrollbary
Vytvořil jsem si UserControlu
<UserControl x:Class="PhotoDownloder.ListItemTemplate"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="30" HorizontalAlignment="Stretch" Name="ListItem">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="39" />
<ColumnDefinition Width="130" />
<ColumnDefinition Width="28*" />
</Grid.ColumnDefinitions>
<Label Content="text" Name="ItemLabel" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" Margin="0,0,9,0" />
<ProgressBar Grid.Column="1" HorizontalAlignment="Stretch" Name="ItemProgresBar" VerticalAlignment="Stretch" Height="15" VerticalContentAlignment="Center" Margin="0,8" Width="130" />
<Image Grid.Column="2" Height="26" HorizontalAlignment="Center" Name="ItemImage" VerticalAlignment="Center" Width="28" Stretch="Fill" />
</Grid>
</UserControl>
A zasekl jsem se na tom jak tuto UserControlu pozit jako template pro uvadeny ListBox, Navic si nejsem jist jestli to je ta spravna cesta.
No a následně provést Binding nejspíše na ItemSource cca následujicim způsobem.
<Window x:Class="PhotoDownloder.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="703" xmlns:my="clr-namespace:DataReader">
<Window.Resources>
<my:ListItemTemplate x:Key="ListTemplate"/>
</Window.Resources>
<Grid>
<ListView Height="auto" HorizontalAlignment="Left" Name="lstImages" VerticalAlignment="Top" Width="auto" ItemsSource="{Binding ListTemplate}">
</ListView>
</Grid>
</Window>
Díky za každou pomoc