우선 좋음/나쁨 뉴스 : ListView
은 묶을 수있는 태그 집합을 표시 할 수 있지만, 불행히도 현재 Horizontal
방향을 지원하지 않으므로 사용자의 요구를 충족시키지 못합니다.
<ScrollView Orientation="Horizontal">
<StackLayout x:Key="tags" Orientation="Horizontal">
</StackLayout>
</ScrollView>
을 그리고 채우는 StackLayout 그와 뷰 모델에서 데이터 때 바인딩 컨텍스트 또는 속성 변경 :
차선책은 ScrollView
에 포함 된 수평 StackLayout
될 것이다. 아래 예제는 StackLayout을뷰로 채우고 "TagStyleName"스타일을 사용하여 스타일을 지정합니다.
// Note: If this code doesn't work, someone else wrote it.
protected override OnBindingContextChanged() {
var vm = this.BindingContext as MyViewModelClass;
if (vm == null) return;
vm.PropertyChanged += (o, e) => {
if (e.PropertyName == "Tags") {
WatchTagsForChanges();
RefreshTags();
}
};
}
private void WatchTagsForChanges() {
var vm = this.BindingContext as MyViewModelClass;
if (vm == null) return;
vm.Tags.CollectionChanged += (o, e) => RefreshTags();
}
private void RefreshTags() {
var vm = this.BindingContext as MyViewModelClass;
if (vm == null) return;
this.tags.Children.Clear()
foreach (var tag in vm.Tags) {
this.tags.Children.Add(new Label{ Text = tag, Style = "TagStyleName" }));
}
}
각보기 "획"또는 "태그"라는 전역 변수를 가질 수 있고 모든 코드에서이 액세스 할 수 있습니다 :'공공 문자열 TAG1 = "태그 1";' –