2017-02-19 18 views
0

私はXF UIで作業しています。ここにはListviewがあり、ステッパーコントロールがあります。私はステッパーのコントロールは次のようにその値がその結合している表示するエントリボックスと一緒に内ステッパー内部でリストビューが正しくインクリメントされていない

ItemSourceプロパティを使用して
<ListView ItemsSource="{Binding TicketList,Mode=TwoWay}" > 

をリストビューを結合しています。正しい値を

<Entry Text="{Binding SelectedQuantity,Mode=TwoWay}"></Entry> 
<Stepper Increment="1" Maximum="{Binding AvailableTickets}" Minimum="0" 
         Value="{Binding SelectedQuantity,Mode=TwoWay}"></Stepper> 

ウェルのコントロールロード、。しかし、ステッパーを増やそうとすると、ステッパーが動作しているように見えますが(最大/最小とグレーアウトに達する)、増分された値をエントリーボックスに反映することはできません。

Stepperの値を反映したEntry Controlの値をどのように変更することができますか?

私はPrismを使用していて、理想的にはValueChange Evenetを操作するためのC#コードの記述にバインディングを優先します。

更新

あなたが財産を調達する必要がある

 private ObservableCollection<TicketModel> _TicketList; 
    public ObservableCollection<TicketModel> TicketList 
    { 
     get { return _TicketList; } 
     set { SetProperty(ref _TicketList, value); } 
    } 

おかげ

+0

モデルはINotifyPropertyChangedのを実装していますか? – Jason

+0

こんにちはJaison、実際には私はプリズムを使用しており、プロパティはSetPropertyを使用しています。 –

+0

私は、SelectedQuantityプロパティのgetter/setterにブレークポイントを設定し、コードが実行されていることを確認し、デバッガ出力のバインディングエラーも探します。 –

答えて

1

が上の変更としてリストビューにバインドされたコレクションが定義されているモデルコード

public class TicketModel 
{ 

    public int SelectedQuantity { get; set; } 

} 

を追加しますあなたのSelectedQuantity p ObservableCollectionは、ListViewがコレクションに追加されたり削除されたりするアイテムに自動的に応答するようにします。コレクション内のアイテムの個々のプロパティに対しては何も行いません。また、ItemsSourceのTwoWayバインディングは効果がなく、TwoWayバインディングを作成する理由はありません。ここで

が私のために働いていた私のコードです:

public class MainViewModel : INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 

    int selectedQuantity; 
    public int SelectedQuantity 
    { 
     get 
     { 
      return selectedQuantity; 
     } 
     set 
     { 
      if (selectedQuantity != value) 
      { 
       selectedQuantity = value; 
       PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SelectedQuantity")); 
      } 
     } 
    } 
} 

と私のXAML:

<StackLayout> 
    <Entry Text="{Binding SelectedQuantity,Mode=TwoWay}"></Entry> 
    <Stepper Increment="1" Maximum="10" Minimum="0" 
          Value="{Binding SelectedQuantity,Mode=TwoWay}"></Stepper>  
    </StackLayout> 
+0

こんにちはビル、実際にSelectedQuantityはプロパティとして実装されていません。 ListviewにバインドするObservableCollection のTicketListからのModelのサブプロパティです。私が言及したように、ステッパーはリストビュー内にあります –

+0

あなたの更新された質問に基づいて私の答えを編集しました。 –

+0

Billさん、ありがとうございました。 –

関連する問題