UWP ListView DataTemplate绑定

时间:2018-11-10 09:59:15

标签: c# xaml uwp

我的ViewModel

BookingTakerViewModel

具有财产

public List<string> Vias {get;set;} 

我想将ListView与DataTemplate绑定,但是我不知道该怎么做。这是我的代码,运行时抛出此错误:

 "Unable to cast object of type 'System.String' to type 'UI_Test_1.ViewModels.BookingTakerViewModel'."

我认为x:DataType应该引用该类,在这种情况下,这是我的Viewmodel。我认为x:Bind Vias是错误的,因为这是一个丢失了执行操作的列表。

<ListView
    Name="viasList"
    Width="300"
    BorderBrush="Black"
    BorderThickness="5"
    ItemsSource="{x:Bind viewModel.Vias, Mode=OneWay}">
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                  <Setter Property="MinHeight" Value="1" />
                   <Setter Property="MaxHeight" Value="15" />
            </Style>
            </ListView.ItemContainerStyle>
               <ListView.ItemTemplate>
                    <DataTemplate x:Name="dt" x:DataType="viewmodels:BookingTakerViewModel">
                        <Grid>
                            <TextBlock FontSize="14" Text="{x:Bind Vias, Mode=OneWay}" />
                        </Grid>
                    </DataTemplate>
             </ListView.ItemTemplate>
</ListView>

过孔已被数据实例化,因此不是导致NullReference异常的原因。我相信XAML是不正确的。

1 个答案:

答案 0 :(得分:2)

可能您正在寻找类似的东西吗?

<ListView.ItemTemplate>
    <DataTemplate x:Name="dt" x:DataType="x:String">
        <Grid>
            <TextBlock FontSize="14" Text="{x:Bind}" />
        </Grid>
    </DataTemplate>
</ListView.ItemTemplate>

在数据模板中,{x:Bind}的上下文是模板对象,它是您在ItemsSource中设置的集合中的字符串项。