2010-05-27 127 views
0

是否有可能將濾鏡行從XCeed DataGrid控件轉移到其他地方如組框?如果可能的話,如何?任何指針將不勝感激。從XCeed DataGrid控件中取出FilterRow

請考慮下面的場景在那裏當我點擊過濾按鈕,產品名稱列將根據過濾器查詢過濾給出。爲了做這個場景,我需要取出FilterRow Cell for 產品名稱

alt text

回答

0

是的,它是可能的!查看xceed datagrid文檔! http://doc.xceedsoft.com/products/XceedWpfDataGrid/ 我很抱歉,但我不能找到任何直接的聯繫,所以你必須從左側面板導航: XCeed DataGrid中的WPF-> DataGrid的Foundamentals->操縱數據 - >篩選數據

+0

能否請你給我一個簡單的例子? – 2010-05-28 10:43:09

0

在XAML查找FilterRow你的DataGridControl定義和刪除。

<xcdg:DataGridControl ... > 
    <DataTemplate> 
    <xcdg:FilterRow Background="Pink" /> 
    </DataTemplate> 
</xcdg:DataGridControl> 
3

你可以得到一個完整的樣本,準確顯示您在附帶Xceed DataGrid中的演示文件所需要的。

這是你的硬盤驅動器上的默認位置是:

External Auto Filter Control C:\ Xceed的Samples \ Xceed DataGrid的WPF的專業版V4.2 \ CSHARP \ CustomFiltering

下面的代碼片段展示瞭如何使用綁定到您需要的相應DataGrid列的AutoFilterControl來完成此操作。

<GroupBox x:Name="groupBox" Header="Auto-filter Actions" 
        Margin="{StaticResource groupBoxMargin}" 
        Padding="{StaticResource groupBoxPadding}" 
        Grid.Column="0"> 
      <StackPanel x:Name="stackPanel"> 
       <!-- ComboBoxes for automatic filtering --> 
       <Grid Grid.Column="2" 
        HorizontalAlignment="Right"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition /> 
        <ColumnDefinition Width="135" /> 
        <ColumnDefinition /> 
       </Grid.ColumnDefinitions> 

       <Grid.RowDefinitions> 
        <RowDefinition MinHeight="30" /> 
        <RowDefinition MinHeight="30" /> 
        <RowDefinition MinHeight="30" /> 
       </Grid.RowDefinitions> 

       <!--ShipCountry combo box--> 
       <TextBlock Text="Country" 
          Grid.Column="0" 
          Grid.Row="0" 
          Margin="5,2,5,2" 
          VerticalAlignment="Center" /> 

       <xcdg:AutoFilterControl x:Name="shipCountryAutoFilterControl" 
             Grid.Column="1" 
             Grid.Row="0" 
             AutoFilterColumn="{Binding ElementName=grid, Path=Columns[ShipCountry]}" 
             AutoFilterContext="{Binding ElementName=grid, Path=(xcdg:DataGridControl.DataGridContext)}" 
             Focusable="False" 
             Width="Auto"> 
        <xcdg:AutoFilterControl.Template> 
         <ControlTemplate TargetType="{x:Type xcdg:AutoFilterControl}"> 

          <ComboBox x:Name="PART_DistinctValuesHost" 
            Grid.Column="1" 
            ItemTemplate="{Binding Source={StaticResource countryComboBoxDataTemplate}}" 
            Initialized="OnShipCountryComboBoxInitialized" 
            Margin="5,2,5,2" /> 

         </ControlTemplate> 
        </xcdg:AutoFilterControl.Template> 
       </xcdg:AutoFilterControl> 

       <Button x:Name="clearShipCountryButton" 
         Command="xcdg:AutoFilterControl.ClearAutoFilterValues" 
         CommandTarget="{Binding ElementName=shipCountryAutoFilterControl}" 
         Content="Clear" 
         Grid.Column="2" 
         Grid.Row="0" 
         Initialized="OnClearShipCountryButtonInitialized" 
         Margin="5,2,0,2" /> 

       <!--ShipCity combo box--> 
       <TextBlock Grid.Column="0" 
          Grid.Row="1" 
          Margin="5,2,5,2" 
          Text="City" 
          VerticalAlignment="Center" /> 

       <xcdg:AutoFilterControl x:Name="shipCityAutoFilterControl" 
             Grid.Column="1" 
             Grid.Row="1" 
             AutoFilterColumn="{Binding ElementName=grid, Path=Columns[ShipCity]}" 
             AutoFilterContext="{Binding ElementName=grid, Path=(xcdg:DataGridControl.DataGridContext)}" 
             Focusable="False" 
             IsEnabled="{Binding ElementName=shipCountryAutoFilterControl, 
                  Path=AutoFilterContext.AutoFilterValues[ShipCountry].Count, 
                  Converter={StaticResource greaterThanZeroConverter}, 
                  ConverterParameter=true}" 
             Width="Auto"> 
        <xcdg:AutoFilterControl.Template> 
         <ControlTemplate TargetType="{x:Type xcdg:AutoFilterControl}"> 

          <!-- We only want the City to be selectable when a Country is already selected --> 
          <ComboBox x:Name="PART_DistinctValuesHost" 
            Grid.Column="1" 
            Initialized="OnShipCityComboBoxInitialized" 
            Margin="5,2,5,2" 
            SelectionChanged="OnShipCitySelectionChanged"> 
          <ComboBox.ItemTemplate> 
           <DataTemplate> 
            <TextBlock Text="{Binding}" 
               Padding="2,0,0,0" /> 
           </DataTemplate> 
          </ComboBox.ItemTemplate> 
          </ComboBox> 

         </ControlTemplate> 
        </xcdg:AutoFilterControl.Template> 
       </xcdg:AutoFilterControl> 

       <Button Command="xcdg:AutoFilterControl.ClearAutoFilterValues" 
         CommandTarget="{Binding ElementName=shipCityAutoFilterControl}" 
         Content="Clear" 
         Grid.Column="2" 
         Grid.Row="1" 
         Margin="5,2,0,2" /> 

       <!--OrderDate Month Combo Box--> 
       <TextBlock Grid.Column="0" 
          Grid.Row="2" 
          Text="Month" 
          Margin="5,2,5,2" 
          VerticalAlignment="Center" /> 

       <ComboBox ItemsSource="{Binding Source={x:Static globalization:DateTimeFormatInfo.CurrentInfo}, Path=MonthNames}" 
          Grid.Column="1" 
          Grid.Row="2" 
          Initialized="OnOrderMonthComboBoxInitialized" 
          Margin="5,2,5,2" 
          SelectionChanged="OnOrderMonthComboBoxSelectionChanged"> 
        <ComboBox.ItemTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding}" 
            Padding="2,0,0,0" /> 
         </DataTemplate> 
        </ComboBox.ItemTemplate> 
       </ComboBox> 

       <Button Click="OnClearOrderMonthButtonClick" 
         Content="Clear" 
         Grid.Column="2" 
         Grid.Row="2" 
         IsEnabled="False" 
         Initialized="OnClearMonthButtonInitialized" 
         Margin="5,2,0,2" /> 

       </Grid> 
      </StackPanel> 
     </GroupBox> 

這是重要的部分:

<xcdg:AutoFilterControl x:Name="shipCountryAutoFilterControl" 
           Grid.Column="1" 
           Grid.Row="0" 
           AutoFilterColumn="{Binding ElementName=grid, Path=Columns[ShipCountry]}" 
           AutoFilterContext="{Binding ElementName=grid, Path=(xcdg:DataGridControl.DataGridContext)}" 
           Focusable="False" 
           Width="Auto"> 
+0

哪部分重要? – 2011-10-27 12:54:17