Telerik Forums
UI for WPF Forum
4 answers
393 views

Hello,

I have some of GridViewCheckBoxColumn and GridViewComboBoxColumn that bound to nested property which works perfectly. But when I try to use ExportToXlsx() to export into excel file, result from every columns that bound to nested property are different.

GridViewCheckBoxColumn bound to nested property yields True/False instead of TRUE/FALSE and GridViewComboBoxColumn yields selected value instead of display value which I preferred display value.

Is there anyway to make all columns regardless of nested property binding to be exported in the same format?

 

Here's my sample code

<Window x:Class="WpfApplication3.Window4"
        xmlns:local="clr-namespace:WpfApplication3"
        mc:Ignorable="d"
        Title="Window4" Width="800" Height="300" >
    <StackPanel>
        <telerik:RadGridView Name="grid1" ItemsSource="{Binding GridItemSoure}" AutoGenerateColumns="False">
            <telerik:RadGridView.Columns>
                <telerik:GridViewDataColumn Header="Display" DataMemberBinding="{Binding Display}"/>
                <telerik:GridViewCheckBoxColumn Header="IsChecked" DataMemberBinding="{Binding IsChecked}"/>
                <telerik:GridViewComboBoxColumn Header="SelectedItem" DataMemberBinding="{Binding SelectedItemId}" ItemsSource="{Binding ComboItemSource}" DisplayMemberPath="Display" SelectedValueMemberPath="Id"/>
                <telerik:GridViewDataColumn Header="Amount" DataMemberBinding="{Binding Amount}"/>
                <telerik:GridViewDataColumn Header="This.Display" DataMemberBinding="{Binding This.Display}"/>
                <telerik:GridViewCheckBoxColumn Header="This.IsChecked" DataMemberBinding="{Binding This.IsChecked}"/>
                <telerik:GridViewComboBoxColumn Header="This.SelectedItem" DataMemberBinding="{Binding This.SelectedItemId}" ItemsSource="{Binding ComboItemSource}" DisplayMemberPath="Display" SelectedValueMemberPath="Id"/>
                <telerik:GridViewDataColumn Header="This.Amount" DataMemberBinding="{Binding This.Amount}"/>
            </telerik:RadGridView.Columns>
        </telerik:RadGridView>
        <Button Click="Button_Click">Export</Button>
    </StackPanel>
</Window>
public partial class Window4 : Window
{
    public Window4()
    {
        InitializeComponent();
 
        this.DataContext = new
        {
            GridItemSoure = new List<RowItem>()
            {
                new RowItem() { Display = "Row1", IsChecked = true, SelectedItemId = null, Amount = 9.999m },
                new RowItem() { Display = "Row2", IsChecked = false, SelectedItemId = null, Amount = 10000 },
                new RowItem() { Display = "Row3", IsChecked = true, SelectedItemId = 2, Amount = 1/3 },
                new RowItem() { Display = "Row4", IsChecked = false, SelectedItemId = 3, Amount = -1/3 },
            },
            ComboItemSource = new List<Item>()
            {
                new Item() { Id = 1, Display = "Item 1" },
                new Item() { Id = 2, Display = "Item 2" },
                new Item() { Id = 3, Display = "Item 3" },
            },
        };
    }
 
    private void Button_Click(object sender, RoutedEventArgs e)
    {
 
        string extension = "xlsx";
        SaveFileDialog dialog = new SaveFileDialog()
        {
            DefaultExt = extension,
            Filter = String.Format("{1} files (*.{0})|*.{0}|All files (*.*)|*.*", extension, "Excel Workbook"),
            FilterIndex = 1
        };
        if (dialog.ShowDialog() == true)
        {
            using (Stream stream = dialog.OpenFile())
            {
                grid1.ExportToXlsx(stream, new GridViewDocumentExportOptions()
                {
                    ShowColumnHeaders = true,
                    ShowColumnFooters = true,
                    ShowGroupFooters = true,
                    AutoFitColumnsWidth = true,
                    ExportDefaultStyles = false,
                });
            }
        }
    }
}
 
public class RowItem : INotifyPropertyChanged
{
    private string _Display;
    public string Display
    {
        get { return _Display; }
        set
        {
            this._Display = value;
            OnPropertyChanged(nameof(Display));
        }
    }
 
    private bool _IsChecked;
    public bool IsChecked
    {
        get { return _IsChecked; }
        set
        {
            this._IsChecked = value;
            OnPropertyChanged(nameof(IsChecked));
        }
    }
 
    private int? _SelectedItemId;
    public int? SelectedItemId
    {
        get { return _SelectedItemId; }
        set
        {
            this._SelectedItemId = value;
            OnPropertyChanged(nameof(SelectedItemId));
        }
    }
 
    private decimal? _Amount;
    public decimal? Amount
    {
        get { return _Amount; }
        set
        {
            this._Amount = value;
            OnPropertyChanged(nameof(Amount));
        }
    }
 
    public RowItem This
    {
        get
        {
            return this;
        }
    }
 
    public event PropertyChangedEventHandler PropertyChanged;
 
    private void OnPropertyChanged(string name)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(name));
    }
}
 
public class Item : INotifyPropertyChanged
{
    private string _Display;
    public string Display
    {
        get { return _Display; }
        set
        {
            this._Display = value;
            OnPropertyChanged(nameof(Display));
        }
    }
 
    private int? _Id;
    public int? Id
    {
        get { return _Id; }
        set
        {
            this._Id = value;
            OnPropertyChanged(nameof(Id));
        }
    }
 
    public event PropertyChangedEventHandler PropertyChanged;
 
    private void OnPropertyChanged(string name)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(name));
    }
}

 

Thanks

Non
Top achievements
Rank 1
 answered on 18 Oct 2018
2 answers
134 views

Hi,

 

I have a huge amount of data, which I don't want to load all into the gridview.

I want to have the following scenario: The user applies filter with the default filtering control. The ViewModel get the FilterDescriptor and request the filtered Data at the DataService. The GridView shows the received data.

I don't want to use the filter for filtering the data bound to the gridview, I want to use it to request filtered data.

 

Moritz

Moritz
Top achievements
Rank 1
 answered on 17 Oct 2018
0 answers
120 views

I've modified the AppointmentItemHorizontalControlTemplate template to include a popup like so:

<ControlTemplate x:Key="AppointmentItemHorizontalControlTemplate" TargetType="telerikScheduleView:AppointmentItem">
        <Grid x:Name="Root">
            <Popup Style="{StaticResource AppointmentPopupStyle}" PlacementTarget="{Binding ElementName=Root}" />
...
</ControlTemplate>

 

The popup shows as expected, however when I try to selected something on the popup by holding down the left mouse button, a drag effect is initiated beneath it that is trying to move the appointment into another slot (e.g when using the Month View definition). Unfortunately no event is received in the popup until after the drag effect is initiated.

 

Is there are a way to cancel the drag effect of the schedule view when the user is interacting with a popup?

fsfsf
Top achievements
Rank 1
 asked on 17 Oct 2018
1 answer
269 views

now the fluent theme use the Aero effect,the background is too clear,

the Acrylic effect is better!

there is a opensource project: https://github.com/sourcechord/FluentWPF

the principal code:

     internal enum AccentState
    {
        ACCENT_DISABLED = 0,
        ACCENT_ENABLE_GRADIENT = 1,
        ACCENT_ENABLE_TRANSPARENTGRADIENT = 2,
        ACCENT_ENABLE_BLURBEHIND = 3,
        ACCENT_ENABLE_ACRYLICBLURBEHIND = 4,
        ACCENT_INVALID_STATE = 5
    }

   accent.GradientColor = 0x00FFFFFF;

  

Kalin
Telerik team
 answered on 17 Oct 2018
3 answers
145 views

Hello,

A multi-selection RadComboBoxis integrated into a cell of a RadGridView in the project that is attached.

The problem I have when trying to add a handle to an event to customize the loading of the multiple values of the RadComboBox.

This code does not work ...

FrameworkElementFactory dateFactory = new FrameworkElementFactory (typeof (RadComboBox), "Target");
dateFactory.SetValue (RadComboBox.AllowMultipleSelectionProperty, true);
dateFactory.SetValue (RadComboBox.ItemsSourceProperty, new List <string> {"DBF", "REP"});

                 // Add handler not rule
                 RoutedEventHandler handler = new RoutedEventHandler (LoadedTarget_RadComboBox);
                 dateFactory.AddHandler (RadComboBox.LoadedEvent, handler, true);



On the other hand, if I add the handler outside of a Grid it works correctly

Thanks in advance.

[I'm attaching the test project code concerning the problem]

Dilyan Traykov
Telerik team
 answered on 16 Oct 2018
2 answers
97 views

we are using 2 RadTreeview in of our form in WPF application.

we got a requirement that one RadTreeView will have  only one parent folder like Favoirites.

so whenever any folder is selected by user in another RadTreeview ,then that folder must be added in Favoirites

 

Ex:

RadTreeView1

 Favourites

  --->MyFolder

RadTreeView2

Categories

-->MyFolder

At first Favourites will be empty and when user will select MyFolder it will be getting added into Favourites.

 

Please help me.

 

 

 

Priyatam
Top achievements
Rank 1
 answered on 16 Oct 2018
0 answers
66 views

How can I force data-grid refresh on the Outlook Template for VS2018?

 

At this moment, when I make a change on the cell, I need to close the group and open the group to see the changes.

I am using observablecollection and INotifyPropertyChanges.

 

I saw in some forum that I can force the grid to update, I want to do this with a button which calls on a command function from the command file in the template.

e.g.   DataGridName.Item.Refresh();

But it seems like I can't find the reference to the datagrid at all.

Khoa
Top achievements
Rank 1
 asked on 16 Oct 2018
2 answers
133 views

Is there a way to have the Search box selected when a window with RadGridView is initialized? I want the user to be able to search straight away, without having to first click on the search box to enter text.

 

David
Top achievements
Rank 1
 answered on 15 Oct 2018
2 answers
67 views

Hi Telerik,

I'm working with your outlook inspired template for VS 2018 and is a bit stucked. 

For the moment, the data in the data-grid seem displays the data from the outlook section.

My problem is: I want the data in the data-grid to be displayed independently from the outlook section, which means, that by removing the outlook section, the data in the data-grid should not disappear.

What is the easiest way for me to achieve this, without breaking functionality like hasSelected unread/read?

However, the data I want to display is the exact same emails created in the SampleContentService, I just don't want to bind the data-grid to these folders in the outlook sections. 

 

Thanks

Khoa
Top achievements
Rank 1
 answered on 15 Oct 2018
1 answer
83 views

Hi,

How can I change ItemsSource in the outlook template?

At the moment, it seems like the e-mails shown in the data-grid is retrieved through the Outlook Section. 

How can I bind data independent of the outlook section? Because I'm thinking of removing the OutlookBar and OutlookItem (Panel of the left side), and this makes the e-mails from the data-grid disapp

 

        private static ObservableCollection<ContractGroup> _contractGroup;

        public static ObservableCollection<Contract> GetContracts(int size, string keyword)
        {
            var contracts = new ObservableCollection<Contract>();
            for (int i = 1; i <= size; i++)
            {
                XamlFormatProvider xamlFormatProvider = new XamlFormatProvider();

                contracts.Add(new Contract() { Symbol = test
            }

            return contracts;
        }

 

I want to retrieve the contracts,directly from the SampleContentService, how can I do this?

Khoa
Top achievements
Rank 1
 answered on 15 Oct 2018
Narrow your results
Selected tags
Tags
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?