To reproduce:
private void Form1_Load(object sender, EventArgs e)
{
this.ordersTableAdapter.Fill(this.nwindDataSet.Orders);
LocalDataSourceProvider dataProvider = new LocalDataSourceProvider();
dataProvider.Culture = new System.Globalization.CultureInfo("ru-RU");
dataProvider.ItemsSource = this.ordersBindingSource;
dataProvider.BeginInit();
dataProvider.RowGroupDescriptions.Add(new DateTimeGroupDescription() { PropertyName = "OrderDate", Step = DateTimeStep.Year, GroupComparer = new GroupNameComparer() });
dataProvider.RowGroupDescriptions.Add(new DateTimeGroupDescription() { PropertyName = "OrderDate", Step = DateTimeStep.Quarter, GroupComparer = new GroupNameComparer() });
dataProvider.RowGroupDescriptions.Add(new DateTimeGroupDescription() { PropertyName = "OrderDate", Step = DateTimeStep.Month, GroupComparer = new GroupNameComparer() });
dataProvider.ColumnGroupDescriptions.Add(new PropertyGroupDescription() { PropertyName = "EmployeeID", GroupComparer = new GrandTotalComparer() });
dataProvider.EndInit();
dataProvider.BeginInit();
dataProvider.AggregateDescriptions.Add(new PropertyAggregateDescription() { PropertyName = "Freight", AggregateFunction = AggregateFunctions.Sum });
dataProvider.AggregateDescriptions.Add(new PropertyAggregateDescription() { PropertyName = "Freight", AggregateFunction = AggregateFunctions.Average });
dataProvider.EndInit();
this.radPivotGrid1.DataProvider = dataProvider;
}
Workaround:
CultureInfo russianCultureInfo = new System.Globalization.CultureInfo("ru-RU");
List<string> monthNames = DateTimeFormatInfo.CurrentInfo.MonthNames.ToList();
public Form1()
{
InitializeComponent();
this.radPivotGrid1.GroupDescriptorElementCreating += radPivotGrid1_GroupDescriptorElementCreating;
}
private void radPivotGrid1_GroupDescriptorElementCreating(object sender, GroupDescriptorElementCreatingEventArgs e)
{
if (e.GroupDescriptorElement.Text == "Month")
{
e.GroupDescriptorElement.FilterPopup.PopupOpening -= FilterPopupPopupOpening;
e.GroupDescriptorElement.FilterPopup.PopupOpening += FilterPopupPopupOpening;
}
}
private void FilterPopupPopupOpening(object sender, CancelEventArgs args)
{
PivotGroupFilterPopup popup = sender as PivotGroupFilterPopup;
if (popup != null)
{
popup.TreeViewMenuItem.TreeElement.TreeView.NodeFormatting -= TreeView_NodeFormatting;
popup.TreeViewMenuItem.TreeElement.TreeView.NodeFormatting += TreeView_NodeFormatting;
}
}
private void TreeView_NodeFormatting(object sender, TreeNodeFormattingEventArgs e)
{
DateTime date;
int monthIndex = monthNames.IndexOf(e.Node.Text);
if (monthIndex > -1)
{
e.Node.Text = russianCultureInfo.DateTimeFormat.MonthNames[monthIndex];
}
}