リストビューからバインドするオブジェクトによって保持されているリスト<T>から "名前"という文字列プロパティをバインドしようとしています。私のページでリスト内のネストされたオブジェクトのリストビューのバインディングプロパティ<Object>
public class MyObject
{
public List<Object> Objects{ get; set; }
public string Description {get; set; }
public string StartDate {get; set; }
public string EndDate {get ;set; }
public string Type {get; set; }
public MyObject()
{
Objects = new List<Object>();
}
}
public class Object
{
public string Name { get; set; }
public int? Id { get; set; }
public int? Order { get; set; }
}
私は、AAリスト< MyObjectにあるコール・非同期からの私のListViewのItemSourceを設定>
var itemSource = listOfMyObject;
私はすべてが正しくバインドされたDataTemplate
public class Cell : ViewCell
{
private void SetBindings()
{
_objectLabel.SetBinding(Label.TextProperty, "Object.Name");
_descriptionLabel.SetBinding(Label.TextProperty, "Description");
_dateStartLabel.SetBinding(Label.TextProperty, "StartDate");
_dateEndLabel.SetBinding(Label.TextProperty, "EndDate");
_typeOfRequest.SetBinding(Label.TextProperty, "Type");
}
}
を得ました、私のlistViewに表示されない "Object.Name"を除いて。
私のオブジェクトがリスト< T>であり、Nameプロパティを持たないため、動作しないことが分かります。しかし、どうしたら私が望むものを達成できますか?そして、私は1つのラベルのためにちょうど入れ子にされたlistViewを使用したくありません。
私はのようなもので、データのフラットなリストを得ることができることを見てきました: listOfMyObject.SelectMany(obj => obj.Objects)
が、それをやるかわかりません。 リストのオブジェクトのプロパティをバインドするにはどうすればいいですか?<オブジェクト> MyObject?
おかげ
問題は、オブジェクトがリストであるということです。したがって、Object.nameはあいまいです。なぜなら、オブジェクトのリスト内の任意の名前である可能性があるからです。どのオブジェクトをどのように扱っているのか、どのように決定しますか? – Megadec
私はそれを書いたようにそれを知っています...しかし、私はそれを行う方法を見ません。 さて、Object.Name + "+ Object.Name +" "+ Object.Name +" "のように、ラベルにすべてのNameプロパティを表示したいと思います。だから私はListに1つのオブジェクトのプロパティNameだけを表示するのではなく、すべてを表示したくない。 –
_objectLabel.SetBinding(Label.TextProperty、 "Objects [0] .Name"); それはうまくいきますが、3つのオブジェクトが得られれば、私の前頭葉コメントを表示するときに表示したいと思います。 –