C# WPF ListView

0

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.

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1