2017-08-15 70 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