2017-01-24 8 views
0

私はXFアプリケーションでListViewコントロールを操作しています。私のXAMLコードはこのように見えます。私のコードが背後ListView Xamarinがアイテムを追加するときにバインドされない

private ObservableCollection<Recharge> _RechargeList = new ObservableCollection<Recharge>(); 
    public ObservableCollection<Recharge> RechargeList 
    { 
     get 
     { 
      return _RechargeList; 
     } 
     set 
     { 
      SetProperty(ref _RechargeList, value); 
     } 

    }   

のように見え、私は

RechargeList.Add(new Recharge() { SelectedParkingIDParkingID = ParkingID, RechargeAmount = double.Parse(RechargeAmount), BalanceAmount = 10 }); 

しかしDelegateCommandイベントでコレクションに項目を追加しながら

<ListView ItemsSource="{Binding RechargeList}" HasUnevenRows="True" VerticalOptions="FillAndExpand"> 
    <ListView.ItemTemplate> 
    <DataTemplate> 
     <TextCell Text="{Binding Path=SelectedParkingID}" TextColor="Red" /> 
    </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

は、リストビューをリフレッシュするために失敗しました。誰かが私を助けることができますか?

答えて

0

はあなたがタイプミスを持っているよう

<TextCell Text="{Binding Path=SelectedParkingID}" TextColor="Red" /> 

は、あなたのモデルが見えるものに基づいて

<TextCell Text="{Binding Path=SelectedParkingIDParkingID }" TextColor="Red" /> 

であるべきルックス好き。存在しないプロパティにバインドしようとすると、弱く失敗します。アイテムを追加していますが、TextCellにはコンテンツがないためレンダリングされません。

+0

はいでした。ありがとう –

-1

クラスにINotifyPropertyChangedインターフェイスを実装しようとしてください。

public class Data : INotifyPropertyChanged 
{ 
// boiler-plate 
    public event PropertyChangedEventHandler PropertyChanged; 
    protected virtual void OnPropertyChanged(string propertyName) 
    { 
     PropertyChangedEventHandler handler = PropertyChanged; 
     if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); 
} 
protected bool SetField<T>(ref T field, T value, string propertyName) 
{ 
    if (EqualityComparer<T>.Default.Equals(field, value)) return false; 
    field = value; 
    OnPropertyChanged(propertyName); 
    return true; 
} 

    // props 
    private string name; 
    public string Name 
    { 
    get { return name; } 
    set { SetField(ref name, value, "Name"); } 
    } 
} 

各プロパティはその後、ちょうどのようなものされています

private string name; 
public string Name 
{ 
    get { return name; } 
    set { SetField(ref name, value, "Name"); } 
} 
関連する問題