2015-10-20 82 views
0

我正在解決Windows Phone 8.1的ListView的擺動問題,並有像下面的代碼,但是,一旦我添加ItemTemplate,列表的內容不能被看到,我想知道爲什麼以及如何解決這個問題。爲什麼ItemTemplate會使ListView中的項目消失?

<ListView 
      Grid.Row="1" 
      x:Name="ListViewEvents" 
      Loaded="OnListViewEventsLoaded" 
      ItemsSource="{Binding xx}" 
      ItemTemplateSelector="{StaticResource xx}" 
      ItemContainerStyle="{StaticResource xx}" 
      IsItemClickEnabled="True"> 

      <ListView.ItemTemplate > 
       <DataTemplate > 
        <Grid Width="{Binding ActualWidth, ElementName=EventsListGrid}" /> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 
+0

'Grid'裏面沒有任何內容,當然它看起來不可見。如果您想查看某些內容,請嘗試爲網格添加一些「背景」。這只是爲了測試。您需要其他內容控制才能顯示每個項目的值。 –

+0

@KingKing我以爲它應該顯示來自ItemsSource的項目,沒有ItemTemplate的原始代碼也沒有背景,但項目可以顯示 – litaoshen

+0

所以你看到顯示的項目? 'ListViewItem'是一個'ContentControl',你可以改變項目模板而不用鉤住內部控件的任何Content,它怎麼顯示?順便說一下,在默認模板中,它有一個「ContentPresenter」 - 這有助於顯示內容供您查看。 –

回答

0

Width結合正在努力讀書,你的XAML命名EventsListGrid元素的ActualWidth屬性,但有一個在您所提供的示例代碼中沒有這樣的元素。因此,綁定引擎無法在您的網格上設置Width屬性,最有可能將其設置爲某個未設置/ NaN值。至少我可以在設置與您提供的相似的案例時進行確認,並在SnoopListViewItem容器中爲與ListView綁定的測試集合中的每個項目生成的容器進行檢查。也許你想在這種情況下將元素名稱設置爲ListViewEvents,或者在示例中未顯示其他父元素?

+0

謝謝你的時間。我沒有粘貼所有的代碼,我的壞。 EventsListGrid是包含此ListView的網格的名稱。那麼你有什麼建議嗎? – litaoshen