2017-07-10 27 views
0

我有一些問題試圖將元素添加到可觀察的集合,爲我的xamarin.forms應用程序。在這裏,您是代碼的例子:InvalidCastException當我嘗試將元素添加到Xamarin.Forms應用程序中的ObservableCollection

public partial class ItemListPage : ContentPage 
{ 

    public ObservableCollection<string> Elements { get; set; } = new ObservableCollection<string>(); 

    public ItemListPage() 
    { 
     InitializeComponent(); 
     ElementsView.ItemsSource = Elements; 
    } 

    public async void OnAddButtonClicked() 
    { 
     string result = await GetCodeAsync(); 
     if (result != null) 
     { 
      try 
      { 
       Elements.Add(result); 
      }catch(Exception exc) 
      { 
       throw exc; 
      } 
     } 

    }}` 

在這裏,有我的XAML代碼示例:

<ListView x:Name="ElementsView"> 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <StackLayout> 
         <Label Text="PlaceHolderText" /> 
         </StackLayout> 
        </StackLayout> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 

從嘗試捕捉部分,我得到一個InvalidCastException,但我不知道爲什麼!我錯過了什麼嗎?一個obsrvable集合的元素是否應該實現一個特定的接口?非常感謝你!

+0

在代碼中一切看起來都正確。我不知道它爲什麼會給出例外。 – Ahmar

回答

2

DataTemplate元素的子元素必須是或從類型ViewCell派生的。

<ListView.ItemTemplate> 
      <DataTemplate> 
       <ViewCell> 
        <StackLayout> 
         <Label Text="PlaceHolderText" /> 
        </StackLayout> 
       </ViewCell> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
相關問題