나는 RepozitorijumWrapper
이라는이라는 글자가 있습니다.이 글자는 6 개의 필드를 기반으로 내 개체를 표시해야합니다. 필드는 두 개의 TextBox
및 네 개의 DateTimePicker
요소입니다. 기본적으로 이러한 요소가 변경 될 때마다 (번호/문자로도) 목록을 업데이트하고 싶습니다.WPF : ICollectionView.Refresh() UIElement가 텍스트 및 값 변경 대신 포커스를 잃을 때만 새로 고침
내 DateTimePicker
및 TextBox
요소는 설정자에 RepozitorijumWrapper.Refresh()
코드가있는 DateTime 및 문자열 속성에 바인딩됩니다. 응용 프로그램을 테스트 할 때 필터가 작동했지만 한 번 필드를 벗어났습니다. 그 후 컨트롤러에서 Refresh()
메서드를 호출하거나 TextBox
요소의 경우 TextChanged
이벤트를 사용하고 DateTimePicker
인 경우 ValueChanged
메서드를 호출했습니다. 이것은 아무것도 바뀌지 않았습니다. 필터가 작동하지만 새로 고침하는 방식으로 필터가 새로 고쳐지지 않습니다.
내 코드는 이름과 유형이 변경된 동일한 내용의 여섯 개의 사본이기 때문에 각 관련 코드 부분의 인스턴스 하나만 붙여 넣을 것입니다. 여기
<TextBox x:Name="txtSifraTima" Grid.Column="1" Grid.Row="2" Margin="3,3,30,3" Text="{Binding Path=SifraTima}" TextChanged="txtSifraTima_TextChanged" />
이벤트 핸들러 것 :
private void txtSifraTima_TextChanged(object sender, TextChangedEventArgs e)
{
presenter.RepozitorijumWrapper.Refresh();
}
여기의 생성자에서 만든 내 ICollectionView에, 이제 여기에 해당 속성에 대한 XAML이야
public string SifraTima
{
get {return sifraTima;}
set
{
if(!sifraTima.Equals(value))
{
sifraTima = value;
RepozitorijumWrapper.Refresh();
}
}
}
: 여기
은이 호텔의 저의 발표자 클래스 :RepozitorijumWrapper = CollectionViewSource.GetDefaultView(rezervacije.Kolekcija);
RepozitorijumWrapper.Filter = itm =>
((Rezervacija)itm).SifraTerena.Contains(SifraTerena) &&
((Rezervacija)itm).SifraTima.Contains(SifraTima) &&
((Rezervacija)itm).VremeZauzimanja <= VremeZauzimanjaDo &&
((Rezervacija)itm).VremeZauzimanja >= VremeZauzimanjaOd &&
((Rezervacija)itm).VremeOslobadjanja <= VremeOslobadjanjaDo &&
((Rezervacija)itm).VremeOslobadjanja >= VremeOslobadjanjaOd;
감사에 대한 자세한 정보가 있습니다. – user2352164