2017-08-15 9 views
0

xaml内からのListViewバインディングが動作しますが、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は私のViewModelのインスタンスです。

レコード XAMLのバージョンが正常に動作しますObservableCollection<string>

あり、それはテキストを示しているが、C#のバージョンは、単なるテキストなしで空のリスト要素を持っています。

(私は2リストビュー1つのXAMLと他のC#で同じページにこれをテストし、唯一のXAML 1がテキストを示しているが、C#のバージョンがちょうど同じリスト項目の数が、空を持っている)

私はitemssourceプロパティがコード内で正しく動作していると思っていますが、バインディングは誰かが私を助けてくれるのではないでしょうか。

答えて

2

は、HMM元気でこの

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

を試してみてください '' ? 、それは感謝を働いたが、私は理由を理解していない。 – Zany

+1

"オブジェクトそのものではなく、オブジェクト自体のバインディング構文です。文字列にバインドしているので、 "。"単に文字列を表示することを意味します。元のコードでは、Recordsはあなたのコレクションであり、コレクション内の各アイテムのプロパティではないため、動作しないレコードにバインドしようとしていました。 – Jason

関連する問題