2017-08-15 44 views
0

由於標題說明我的ListView綁定從XAML工作,但不工作在C#中。Xamarin c#的ListView綁定不工作,等效的xaml工作

下面的代碼片段: 的XAML

<ListView ItemsSource="{Binding Records}"> 
       <ListView.ItemTemplate> 
       <DataTemplate> 
        <TextCell Text="{Binding}"> 

       </TextCell> 
         </DataTemplate>  
       </ListView.ItemTemplate> 
      </ListView> 

C#

  ListView lv = new ListView(); 
      lv.ItemsSource = ClassVMInstance.Records; 
      var dt = new DataTemplate(typeof(TextCell)); 
      dt.SetBinding(TextCell.TextProperty, new Binding("Records")); 
      lv.ItemTemplate = dt; 

ClassVMInstance是我的視圖模型的實例。

記錄ObservableCollection<string>

的XAML版做工精細,它顯示的內容,但C#版本只是有沒有文字的空列表元素。

(我有2列表視圖一個XAML和其他C#測試此在同一頁上,只有XAML一個顯示文本,但C#版本只是有相同數量的列表項,但空)

我相信itemssource屬性在代碼中正常工作,但綁定不是可以幫助我的人。

回答

2

試試這個

dt.SetBinding(TextCell.TextProperty, new Binding(".")); 
+0

嗯什麼用了 '' ? ,它的工作表示感謝,但我不明白爲什麼。 – Zany

+1

「。」是對象本身的綁定語法,不是它的一個屬性。由於你綁定了一個字符串,「。」意味着只顯示字符串。在原始代碼中,您試圖綁定到記錄,這不起作用,因爲記錄是您的集合,而不是集合中每個項目的屬性。 – Jason