2012-12-27 37 views
0

我遇到了數據綁定的奇怪問題。在設計器中,所有內容都能正確顯示,但在運行時,我的ListView只包含那些TextBlocks,其中包含一個空字符串。我爲ViewModels使用MVVM光源。大部分代碼是由VS2012通過爲WindowsStore-Apps創建一個拆分頁面生成的。ListView在運行時顯示空的TextBlocks

這是我的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); } 
     } 

的數據值對象Country我需要爲我的LINQ查詢:

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

回答

1

請嘗試將名稱屬性的訪問修飾符從internal更改爲public,然後查看是否解決了您的問題?

如果不張貼代碼工作在那裏你填充AvaiableCountries數據

+0

太他媽的容易...它改變公衆的伎倆。我已經這樣做了,但似乎我沒有嘗試運行它與這個變化雖然... 奇怪的事情,它被顯示在設計師,但... – Zhedar