none
WPF datagrid фильтрация RRS feed

  • Вопрос

  • У меня есть таблица данных которую я привязал к DataGrid с помощью DataSet.

     

    <Window.Resources>
    		<my:SpringsDataSet x:Key="springsDataSet" />
    		
    		<CollectionViewSource x:Key="tarelkiViewSource"
    		Source="{Binding Path=Тарельчатые_пружины, Source={StaticResource springsDataSet}}" Filter="CollectionViewSource_Filter"/>
    	</Window.Resources>
    	
        <Grid DataContext="{StaticResource tarelkiViewSource}">
    		<DataGrid AutoGenerateColumns="False"
    				  EnableRowVirtualization="True"
    				  Height="200"
    				  HorizontalAlignment="Left"
    				  ItemsSource="{Binding}"
    				  Margin="41,55,0,0"
    				  Name="tarelkiDataGrid"
    				  RowDetailsVisibilityMode="VisibleWhenSelected"
    				  VerticalAlignment="Top"
    				  Width="400">
    			<DataGrid.Columns>
    				<DataGridTextColumn x:Name="обозначениеColumn"
    									Binding="{Binding Path=Обозначение}"
    									Header="Обозначение"
    									Width="SizeToHeader" />
    				<DataGridTextColumn x:Name="усилиеColumn"
    									Binding="{Binding Path=Усилие}"
    									Header="Усилие"
    									Width="SizeToHeader" />
    				<DataGridTextColumn x:Name="dColumn"
    									Binding="{Binding Path=D}"
    									Header="D"
    									Width="SizeToHeader" />
    				<DataGridTextColumn x:Name="tminColumn"
    									Binding="{Binding Path=tmin}"
    									Header="tmin"
    									Width="SizeToHeader" />
    				<DataGridTextColumn x:Name="tmaxColumn"
    									Binding="{Binding Path=tmax}"
    									Header="tmax"
    									Width="SizeToHeader" />
    				<DataGridTextColumn x:Name="fрColumn"
    									Binding="{Binding Path=Fр}"
    									Header=""
    									Width="SizeToHeader" />
    				<DataGridTextColumn x:Name="nColumn"
    									Binding="{Binding Path=n}"
    									Header="n"
    									Width="SizeToHeader" />
    				<DataGridTextColumn x:Name="lColumn"
    									Binding="{Binding Path=L}"
    									Header="L"
    									Width="SizeToHeader" />
    			</DataGrid.Columns>
    		</DataGrid>
    	</Grid>
    
    		private void Window_Loaded(object sender , RoutedEventArgs e)
    			{
    
    			SpringData.SpringsDataSet springsDataSet = ( ( SpringData.SpringsDataSet ) ( this.FindResource("springsDataSet") ) );
    			// Загрузить данные в таблицу Тарельчатые_пружины. Можно изменить этот код как требуется.
    			SpringData.SpringsDataSetTableAdapters.Тарельчатые_пружиныTableAdapter springsDataSetТарельчатые_пружиныTableAdapter = new SpringData.SpringsDataSetTableAdapters.Тарельчатые_пружиныTableAdapter();
    			springsDataSetТарельчатые_пружиныTableAdapter.Fill(springsDataSet.Тарельчатые_пружины);
    			System.Windows.Data.CollectionViewSource тарельчатые_пружиныViewSource = ( ( System.Windows.Data.CollectionViewSource ) ( this.FindResource("тарельчатые_пружиныViewSource") ) );
    			тарельчатые_пружиныViewSource.View.MoveCurrentToFirst();
    			}
    
    
    Мне нужно отфильтровать данные по значениям столбца tmin и tmax. Тоесть есть некоторое значение t и мне надо получить список строк в которых tmin<t<tmax. Не могу понять какой код нужно написать в обработчике события CollectionViewSource.Filter


     


    • Изменено janychar 18 ноября 2011 г. 17:09
    16 ноября 2011 г. 20:09