2017-11-12 7 views
0

形成:はXamarinは、私はピッカーコントロールを持っているピッカーバインディングエラー

<Picker Title="Number of People" 
      ItemsSource="{Binding SomeList, Source={x:Static local:MyModelHandler.MyModel}}" 
      SelectedItem="{Binding SomeListSelectedIndex, Source={x:Static local:MyModelHandler.MyModel}}"> 
    </Picker> 

私はエラー「いいえプロパティ、バインド可能なプロパティ、またはイベントは、 『のItemsSource』見つかりません」を取得構築しようとしています。

<Label Text ="{Binding SomeLabel, Source={x:Static local:MyModelHandler.MyModel}, Mode=OneWay}"></Label> 

、完全にその結合作品

MyModelHandler唯一のモデルallowes静的クラスがある

public static class MyModelHandler 
{ 
    private static MyModel myModel = new MyModel(); 

    public static MyModel MyModel 
    { 
     get 
     { 
      return myModel; 
     } 
    } 
} 

とモデルは単純です:

ことは、上記

私はラベルを持っています

public class MyModel : INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 
    private int selectedNumber = 1; 
    private string someLabel = ""; 

    public IList<int> SomeList 
    { 
     get 
     { 
      return Enumerable.Range(1, 10).ToList(); 
     } 
    } 

    public int SomeListSelectedIndex 
    { 
     get 
     { 
      return SomeList.IndexOf(this.selectedNumberOfPeople); 
     } 
     set 
     { 
      this.selectedNumber = SomeList[value]; 
     } 
    } 

     public double SomeLabel 
     { 
      get 
      { 
       return this.someLabel; 
      } 
      set 
      { 
       this.someLabel= value; 
      } 
     } 


    protected virtual void OnPropertyChanged(string propertyName) 
    { 
     PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 
    } 
... 
} 

編集:Xamarinを使用する4.3

答えて

1

あなたのXamarin.Formsのバージョンを確認することがあります。 ItemsSourceプロパティがXamarin.Forms 2.3.4.184-PRE1に導入された

、リリースはこちらをご覧ノート:

https://developer.xamarin.com/releases/xamarin-forms/xamarin-forms-2.3/2.3.4-stable/#2.3.4.184-pre1

古いXamarin.Formsバージョンを使用している場合、Xamarin.Forms XAMLエラー "No Items、bindableプロパティ、または" ItemsSource "のイベントが見つかりません。

+0

あなたの答えは非常に役に立ち、私の問題につながりました。私のVisual Studioは、最大のXamarin.formsバージョンがインストールされたことを報告していました。新しいリリースはありません。ソリューションはVS(とそのXamarin)をアップデートしていたので、新しいバージョンのXamarin Formsをインストールすることができました –

1

これは、ビューのバインディングコンテキストを設定する非常に奇妙な方法です。各要素のソースを指定する必要があるという事実は、多くの追加の定型コードを追加します。

はその後XAMLは

<Picker Title="Number of People" 
     ItemsSource="{Binding SomeList}" 
     SelectedItem="{Binding SomeListSelectedIndex}"> 
</Picker> 

か、適切MVVMフレームワークを使用して自分で悲しみを大幅に節約になり、ビューコンストラクタ

BindingContext = new MyModel(); 

にモデルにBindingContextをを設定してみてください。 FreshMvvmをお勧めします。

https://github.com/rid00z/FreshMvvm

関連する問題