UWP ListView DataTemplate Bindings - PullRequest
       0

UWP ListView DataTemplate Bindings

0 голосов
/ 10 ноября 2018

Моя 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>

Vias имеют данные, поэтому это не то, что вызывает исключение NullReference. Я считаю, что XAML неверен.

1 Ответ

0 голосов
/ 10 ноября 2018

Возможно, вы ищете что-то подобное?

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

Внутри шаблона данных контекст {x:Bind} - это шаблонный объект, представляющий собой строковый элемент из коллекции, установленной в ItemsSource.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...