Laden...

Wie kann ich in WPF eine Collection an Listview binden via Databinding?

Erstellt von Kleinstein11 vor 6 Jahren Letzter Beitrag vor 6 Jahren 926 Views
K
Kleinstein11 Themenstarter:in
21 Beiträge seit 2017
vor 6 Jahren
Wie kann ich in WPF eine Collection an Listview binden via Databinding?

Hallo Zusammen,

ich habe ein Beispielprogramm geschrieben, welches mein Problem darstellt.

Wie kann ich mir die Liste Data am einfachsten in Wpf darstellen? Ich habe noch nicht ganz verstanden wie das Datenbinden funktioniert.

Meine xaml sieht wie folgt aus:

<Window x:Class="WpfApp_howToUseTask.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp_howToUseTask"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid Margin="5" RenderTransformOrigin="0.666,0.499">
        <Grid x:Name="MeasurementPlate" Background="Black" Height="200" Margin="419,19,24,50" VerticalAlignment="Center" Width="64" HorizontalAlignment="Center"/>

        <ListView Name="listView1" Margin="0,0,284,0" SelectionChanged="listView1_SelectionChanged">
            <ListView.View>
                <GridView>
                    <GridView.Columns>
                        <GridViewColumn Header="Data" Width="Auto" DisplayMemberBinding="{Binding Path=Data}">
                            
                        </GridViewColumn>
                    </GridView.Columns>
                </GridView>
            </ListView.View>
        </ListView>
        


    </Grid>
</Window>
namespace WpfApp_howToUseTask
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        Transfer tr=new Transfer();
        public MainWindow()
        {
            InitializeComponent();

            ObservableCollection<int> Data = new ObservableCollection<int>();
           
            Data=tr.GetData(Data);
            listView1.ItemsSource = tr.GetData(Data);
        }

        private void listView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }
    }

    public class Transfer
    {
        public ObservableCollection<int> GetData(ObservableCollection<int>data)
        {
            for (int i=0 ;i < 2; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    int d = i + j;
                    data.Add(d); 
                }
            }
            return data;
        }
    }
}

Hinweis von Coffeebean vor 6 Jahren

Bitte nimm Code Tags und poste nur den Relevanten Code. [Hinweis] Wie poste ich richtig?

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo Kleinstein11,

[Artikel] MVVM und DataBinding

mach dir eine Klasse, die ein Property anbietet. Dieses Property ist vom Typ ObservableCollection<T>. die Klasse setzt du als DataContext.

Dann kannst du auf das Property zugreifen via

ItemsSource="{Binding MySuperDuperList}"

Gruss

Coffeebean