단추의 IsEnabled 속성을 창 CollectionViewSource의 속성에 바인딩하려고합니다. 첫 번째/이전/다음/마지막 버튼을 구현하고 첫 번째 항목에 뷰가있을 때 첫 번째와 이전을 사용하지 않도록 설정합니다.바인딩 단추. CollectionView에서 현재 위치를 사용하도록 설정했습니다.
컬렉션보기 소스를 설정하고 UI 컨트롤을 바인딩했습니다. 코드에서보기에 대한 액세스 권한으로 올바르게 표시되므로 클릭 이벤트 핸들러는보기를 탐색 할 때 잘 작동합니다.
<CollectionViewSource x:Key="cvMain" />
DockPanel은
<DockPanel DataContext="{StaticResource cvMain}">
FoJobs가 관찰 모음입니다 윈도우의 루트 요소입니다 cvJobs 내가 버튼의 클릭 핸들러에서 사용하십시오 CollectionView이다
private void Window_Loaded(object sender, RoutedEventArgs e) {
((CollectionViewSource)Resources["cvMain"]).Source = FoJobs;
cvJobs = (CollectionView)((CollectionViewSource)Resources["cvMain"]).View;
}
내가 가진 이것을 시도했지만 바인딩 오류가 발생합니다. "BindingExpression 경로 오류 : '' '' 'ListCollectionView' '에 속성이 없습니다." "
<Button Name="cbFirst" Click="cbMove_Click" IsEnabled="{Binding Source={StaticResource cvMain}, Converter={StaticResource CurrPos2BoolConverter}}" />
저는 변환기를 먼저 사용하려고 시도하지만 트리거가있는 스타일을보다 효율적으로 지정할 수는 있지만 컬렉션보기에 액세스 할 수 없습니다. 기본 datacontext가 콜렉션 뷰 소스로 설정되어 있지만, 바인딩은 뷰의 소스 (위와 같이 바인딩의 소스를 명시 적으로 설정하지 않으면)로 변환기에 전달되며 통화 속성 (CurrentPosition, Count 등)이 없습니다.
도움을 주시면 감사하겠습니다.
Source 속성을 ElementName으로 변경하십시오. 도움이 될 수 있습니다. – stukselbax
지역에 데이터를 표시하는 위치는 어디입니까? 'DataGrid' 또는 ... –
컬렉션 뷰가 비주얼 트리의 요소가 아닌 윈도우의 리소스에서 선언 될 때 ElementName을 어떻게 사용할 수 있는지 이해하지 못합니다. –