저는 XAML 및 C#의 초보자입니다. 아래 코드를 가지고 있는데이 두 가지 오류를 해결하기 위해 무엇을 수정해야하는지 알 수 없습니다.바인딩 CollectionViewSource ListBox를 사용하여 필터
Requested value 'PropertyChanged' was not found.
하고 여기에
'Cautare.get' must declare a body because it is not marked abstract, extern, or partial
는 XAML
<TextBox x:Name="textbutton1" Text="{Binding Cautare, UpdateSourceTrigger=PropertyChanged}"/>
<ListBox Grid.Row="1" x:Name="ListBox" Margin="0,0,-12,0" ItemsSource="{Binding Sursa.View}">
및 코드 숨김
public partial class MainPage : PhoneApplicationPage
{
public CollectionViewSource Sursa { get; set; }
public string Cautare { get;
set
{
if (!string.IsNullOrEmpty(Cautare))
Filtreaza();
Sursa.View.Refresh();
}
}
private void Filtreaza()
{
Sursa.Filter -= new FilterEventHandler(Filtru);
Sursa.Filter += new FilterEventHandler(Filtru);
}
private void Filtru(object sender, FilterEventArgs e)
{
var src = e.Item as Rind;
if (src == null) e.Accepted = false;
else if (src.Text != null && !src.Text.Contains(Cautare)) e.Accepted = false;
}
public ObservableCollection<Rind> Lista { get; set; }
public MainPage()
{
Lista = new ObservableCollection<Rind>
{
new Rind { Text = "abcd"},
new Rind { Text = "asdf"},
new Rind { Text = "asdzx"},
new Rind { Text = "adffgd"},
new Rind { Text = "asdfgea"},
};
InitializeComponent();
Sursa = new CollectionViewSource();
Sursa.Source = Lista;
DataContext = this;
}
public class Rind
{
public string Text { get; set; }
}
}
이다 나는했습니다 이미 CollectionViewSource 및 대한 다른 유사한 질문을 읽어 제본.
내 직관은 이것이 일반적인 문제라고 말하지만 2 시간의 테스트 후에 뇌 차단 루프에 들어갔고 더 이상 명확하게 볼 수 없습니다. 그래서 나는 도움을 청하고있다. 감사합니다.
답장을 보내 주셔서 감사합니다. 사실, 나는 accesor를 뒷받침했다. 그것은 해결되었다. 나는 나중에 발견했다. 하지만 "속성 변경"을 사용하여 바인딩하는 방법을 이해할 수 없습니다. 나는 "명시 적"으로 트리거하거나 이벤트에 가입하려고 시도했습니다. – acadea
6 개월 후에 내 질문을 읽고 :)) – acadea
그것은 모두와 함께 발생 : D 조 – loop