簡體   English   中英

ListView在運行時顯示空的TextBlocks

[英]ListView showing empty TextBlocks at runtime

我在數據綁定方面遇到了一個奇怪的問題。 在設計器中,所有內容均可正確顯示,但在運行時,我的ListView僅包含帶有空字符串的TextBlock。 我正在為ViewModels使用MVVM light。 大部分代碼是由VS2012通過為WindowsStore-Apps創建一個拆分頁面而生成的。

這是我的XAML :(我已經刪除了其他一些部分,例如VisualStateManager ,但是沒有任何效果,因此這似乎不是問題。)

<common:LayoutAwarePage
    x:Name="pageRoot"
    x:Class="Kunden.OrderPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Kunden"
    xmlns:common="using:Kunden.Common"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    DataContext="{Binding SelectCustomersViewModel, Source={StaticResource Locator}}">

    <Page.Resources>
        <CollectionViewSource
            x:Name="itemsViewSource"
            Source="{Binding Items}"/>
    </Page.Resources>

    <Grid Style="{StaticResource LayoutRootStyle}">
        <Grid.RowDefinitions>
            <RowDefinition Height="140"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition x:Name="primaryColumn" Width="610"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <Grid x:Name="titlePanel">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Button
                x:Name="backButton"
                Click="GoBack"
                IsEnabled="{Binding DefaultViewModel.CanGoBack, ElementName=pageRoot}"
                Style="{StaticResource BackButtonStyle}"/>
            <TextBlock x:Name="pageTitle" Grid.Column="1" Text="Werbeauswahl" Style="{StaticResource PageHeaderTextStyle}" Margin="0,0,-2,40"/>
        </Grid>

        <!-- Elementliste mit vertikalem Bildlauf -->
        <ListView
            x:Name="itemListView"
            AutomationProperties.AutomationId="ItemsListView"
            AutomationProperties.Name="Items"
            TabIndex="1"
            Grid.Row="1"
            Margin="-10,-10,0,0"
            Padding="120,0,0,60"
            IsSwipeEnabled="False"
            SelectionChanged="ItemListView_SelectionChanged"
            ItemsSource="{Binding AvaiableCountries}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}"/>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
... closing brackets etc.

我要綁定的IEnumerable

private IEnumerable<Country> avaiableCountries;

        public IEnumerable<Country> AvaiableCountries
        {
            get { return avaiableCountries; }
            set { avaiableCountries = value; RaisePropertyChanged(() => AvaiableCountries); }
        }

我的LINQ查詢所需的數據值對象Country

public class Country
    {
        internal string Name { get; set; }
    }

請嘗試嘗試將Name屬性的訪問修飾符從internal更改為public ,看看是否可以解決您的問題?

如果這樣不起作用,則將代碼發布到您用數據填充AvaiableCountries的位置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM