Witam, czy na ListView można wyświetlać itemy w jednej linii obok siebie? Jeśli tak to w jaki sposób.
Chcę stworzyć wyświetlające się obok siebie zdjęcia ale gdy wyświetlam jest w ListView to są jedno pod drugim.
0
1
Możesz tak
<StackPanel>
<ListView>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListViewItem>
<StackPanel Orientation="Horizontal">
<Image Source="sciezka" Margin="0,0,5,0" />
<TextBlock>Test</TextBlock>
</StackPanel>
</ListViewItem>
<ListViewItem>
<StackPanel Orientation="Horizontal">
<Image Source="sciezka" Margin="0,0,5,0" />
<TextBlock>Test</TextBlock>
</StackPanel>
</ListViewItem>
</ListView>
</StackPanel>
0
Z poziomu kodu chce dynamicznie dodawać zdjęcia jednak program mi wyrzuca błąd z komunikatem "InvalidOperationException: Kolekcja elementów musi być pusta zanim zostanie użyte źródło ItemsSource."
Klasa goals:
public class goals
{
public string Image { get; set; }
public goals(string image)
{
this.Image = image;
}
}
private List<goals> GetGoals()
{
return new List<goals>()
{
new goals('ścieżka do pliku'),
new goals('ścieżka do pliku')
};
}
public MainWindow()
{
InitializeComponent();
var goals = GetGoals();
ListView1.ItemsSource = goals;
}
XAML:
<Grid>
<StackPanel>
<ListView x:Name="ListView1" ItemsSource="{Binding goals}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListViewItem>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Image}" Margin="0,0,5,0" />
<TextBlock>Test</TextBlock>
</StackPanel>
</ListViewItem>
</ListView>
</StackPanel>
</Grid>
0
Witam,
A jakby twoj model implementowal INotifyPropertyChanged a lista obiektow byla przechowywana w ObservableCollection<T> to moze bylo by troche lepiej?
Pozdrawiam,
mr-owl