C# 如何将数据绑定到多列列表框WP8.1

C# 如何将数据绑定到多列列表框WP8.1,c#,xaml,binding,listbox,windows-phone-8.1,C#,Xaml,Binding,Listbox,Windows Phone 8.1,我不熟悉WP8.1的XAML的整个数据绑定。我一直在网上搜索,似乎找不到一个直截了当的答案 我的页面上有一个ListBox控件,有3列。我需要做的是在每一列中填入各自的数据 我有一个类定义了一个“CompleteTestation”,它由3个字符串组成(StationName、Distance和GasPrice) 这是列表框的XAML代码。。。如何向列表框传递一个CompleteStation(3个字符串),并将每个字符串分隔到正确的列中 下面是我的XAML代码。在我的主类中,我只是将一个逗号项

我不熟悉WP8.1的XAML的整个数据绑定。我一直在网上搜索,似乎找不到一个直截了当的答案

我的页面上有一个ListBox控件,有3列。我需要做的是在每一列中填入各自的数据

我有一个类定义了一个“CompleteTestation”,它由3个字符串组成(StationName、Distance和GasPrice)

这是列表框的XAML代码。。。如何向列表框传递一个CompleteStation(3个字符串),并将每个字符串分隔到正确的列中

下面是我的XAML代码。在我的主类中,我只是将一个逗号项添加到列表框中

另外,我是否需要在XAML代码中引用CompleteTestation类?如果是,我该怎么做

<ListBox Name="listBoxStations" FontSize="20" Grid.Row="1">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid Width="480" Background="#e6e6e6" Margin="0,10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding Station}"/>
                        <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Distance}"/>
                        <TextBlock Grid.Row="0" Grid.Column="2" Text="{Binding Price}"/>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

谢谢


-Johan

假设您的CompleteStation是实现的,那么XAML应该如下

<ListBox Name="listBoxStations" ItemSource={Binding CompleteStation} FontSize="20" Grid.Row="1">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid Width="480" Background="#e6e6e6" Margin="0,10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding Station}"/>
                        <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Distance}"/>
                        <TextBlock Grid.Row="0" Grid.Column="2" Text="{Binding Price}"/>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
您的ViewModel:

public sealed class MyViewModel
{
  public ObservableCollection<CommpleteStation> CommpleteStations{get;private set;}
  public MyViewModel()
  {
    CommpleteStations = new ObservableCollection<CommpleteStation>();
    CommpleteStations.Add(new CommpleteStation{Station="One", Distance="15",Price="130"};
  }
}

如何在顶部的XAML代码中引用绑定完成测试?我不需要这样做吗?@user3138251如果你是相对绑定的,你不需要这样做,我想我已经解决了!谢谢你,我完全忘了!我的错!
public sealed class MyViewModel
{
  public ObservableCollection<CommpleteStation> CommpleteStations{get;private set;}
  public MyViewModel()
  {
    CommpleteStations = new ObservableCollection<CommpleteStation>();
    CommpleteStations.Add(new CommpleteStation{Station="One", Distance="15",Price="130"};
  }
}
public MyView()
{
  this.DataContext = new MyViewModel();
}