으로 구성된 ObservableCollection
에 바인딩 된 ListView
이 있습니다.Xamarin Forms ListView ObservableCollection이 업데이트되지 않음
<ListView x:Name="MyList" ItemsSource="{Binding MyList}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding Name" FontSize="Small"/>
<StackLayout Spacing="20">
<Entry Text="{Binding Id}"/>
<Button Text="Create Profile" IsEnabled="False">
<Button.Triggers>
<DataTrigger TargetType="Button" Binding="{Binding HasId}" Value="True">
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
</Button.Triggers>
</Button>
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
은 이 결과 원하는 : 사용자가 입력 항목으로 (Id
에 바인더 제본)하면, 버튼이 활성화되어야하는 프론트 엔드 XAML에서
public string Id{ get; set; }
public string Name{ get; set; }
public bool HasId
{
get { return !(String.IsNullOrEmpty(Id)); }
}
:
뷰 모델은 다음과 같다 .
실제 결과 : 나는/추가 할 때 /로부터 요소를 삭제 : 항목에 사용자가 입력, 아무 반응이 없을 때
주 (나는 viewmodel
내에서 변경이 표시되지 않는 ObservableCollection
의 원인이 추측하고있어) ObservableCollection
이면보기가 (예상대로) 업데이트됩니다.
모든 제안/아이디어를 높이 평가합니다.
ViewModel 클래스는 INotifyPropertyChanged를 구현해야합니다. – Jason
@ Jason thanks! 처음으로 설명서를 읽었을 때 이해가되지 않았지만 이제는 의미가 있습니다. – indubitablee