Telerik Forums
UI for WPF Forum
2 answers
165 views
I am binding the grid view to a data table via ItemsSource. Everything is OK, however, the changes to the data source don't go only through the grid user interface, but may happen also by making programatic changes directly to the data source. For example a menu option may go trough some data table fields and change their values, or may add new rows to the data table. In that case I want the grid to be notified about the changes in those affected areas and redraw itself to show the changes. However, I cannot find any method that would sound like "Redraw" or "Invalidate". There is a method Rebind which actually does the job and which I am using, however, why do I want to rebind the entire grid if I am changing only one field? I want to redraw its corresponding cell only rather than rebinding the entire grid.
Is there any method, or a subscription to an event, where I can have the grid redraw specified areas.
Any code samples?
Thank you,
Cezar Mart

P.S. I investigated it in the meantime, and I learned I need to implement INotifyCollectionChanged in my DataTable.
Great, I did this way:
public class MyDataTable : DataTable, INotifyCollectionChanged
{

  protected override void OnRowChanged ( DataRowChangeEventArgs e )
  {
   base.OnRowChanged(e);
   if ( e.Action == DataRowAction.Add )
   {
    if ( CollectionChanged != null )
    {
     CollectionChanged ( this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add) );
    }
   }
  }

  public event NotifyCollectionChangedEventHandler CollectionChanged;


}

and later in the code:
MyDataTable tb = new MyDataTable();
grid.ItemSource = tb; // grid is of type RadGridView

Then I programatically add a new row to my data table and the OnRowChanged is invoked. Great, however, the CollectionChanged handler is always null, so it looks the grid is not listening to this event. How do I make listen?

Thanks
ESA
Top achievements
Rank 1
 answered on 11 Aug 2011
1 answer
112 views

Hello

 

Is there, somewhere in the doc or on Internet, examples of projects with the OutlookBar?

 

And, by the way, examples of the other rad tools?

 

Thanks

 

Richard

 

Richard
Top achievements
Rank 1
 answered on 11 Aug 2011
9 answers
772 views
Hello,

I have added a GridViewComboBoxColumn to my RadGridView but it takes three clicks to expose the actual dropdown to make a selection. I've looked at this thread but my bindings are not showing any data. Is there anything new or updated that allows a combo box to be embedded in a RadGridView column, the thread was from 2009. The other problem I had was that there was no SelectionChanged event on the GridViewComboBoxColumn. I found a work around for that issue but the selection changed would fire before the combo box had even dropped down it's selections and the user made a physical change. With this approach is it possible to use the RadComboBox SelectionChanged event?

What I'm looking for is a combo box inside the grid that is immediately available for change and that raises an event if it is changed. I don't like having to click three times to expose and change a combo box value.

Binding is as follows:
ctrlStatus.ItemsSource = _statusList;  Where _statusList is a List<string>

<telerik:GridViewComboBoxColumn Header="Status" x:Name="ctrlStatus" ItemsSource="{Binding Port}"   DataMemberBinding="{Binding Status,Mode=TwoWay}" DisplayMemberPath="Status" Width="auto" IsFilterable="False" SelectedValueMemberPath="Status">
  <telerik:GridViewComboBoxColumn.CellTemplate>
    <DataTemplate>
      <StackPanel>
        <telerik:RadComboBox x:Name="ctrlStatus" ItemsSource="{Binding Port}" DisplayMemberPath="Status" Width="auto" IsFilteringEnabled="False" SelectedValuePath="Status" SelectedValue="{Binding Status}"/>
      </StackPanel>
    </DataTemplate>
  </telerik:GridViewComboBoxColumn.CellTemplate>
</telerik:GridViewComboBoxColumn>


G
Pavel Pavlov
Telerik team
 answered on 11 Aug 2011
2 answers
176 views
My date picker is bound to a DateTime field, but on the UI, the control allows the user to "delete" the value. This causes the validation to throw an error "Value '' cannot be converted". Is there any way to set the control to the current datetime when the user "deletes" the date in the box?

I'm also having this trouble with a bound combobox that doesn't allow null values. I want the user to be able to type in to select a value, but that means they can also remove the value (which causes the same error).
Boyan
Telerik team
 answered on 11 Aug 2011
10 answers
354 views
Hello,

I'm doing a small project and just upgraded to the latest version of WPF telerik control. In my project I had some drag and drop between grid and listbox. Pretty much the same as the one in the demo (http://demos.telerik.com/silverlight/#DragAndDrop/TreeToGrid) this one but the wpf version. I used to be able to drag my item from the list without any problem but now it just doesn't work. The new WPF demo does not seem to work too.

Any ideas to what is wrong?

thank you very much
Ronald
Top achievements
Rank 1
 answered on 11 Aug 2011
7 answers
401 views
Hi,

I want some columns show hyperlink, and I found GridViewHyperlinkColumn and GridViewDataColumn in RadGridView.

My question is how to include them into RadGridView dynamically base on custom logic?

for example, when the grid load first time only col1, col3 and col 5 need to display as hyperlink, but when same grid load second time, maybe col2, col5 and col8 need to display hyperlink, not col1 and col3.

Thanks.


Gaurang
Top achievements
Rank 1
 answered on 11 Aug 2011
1 answer
191 views

Dear support team,

we're using your Chart control to display several charts in our WPF application and have massive problems with its performance. I'd like to describe the application design and hope you have an idea how we can improve the applications performance.

There is a TabControl with two tab items and in each of those are two charts. Only one chart is visible at any time, each chart contains two line series. The charts show measurement values which are reported every 100 milliseconds. These values are buffered and added to a ObservableCollection every second (actually just an implementation of IList and the notify interfaces to get the collection thread-safe). This collection is binded to the chart (MVVM). A measurement will take between one or two minutes, so there will be something around 1000 values for each chart.

You can find a screen shot of the application at http://dl.dropbox.com/u/36135015/telerik%20forum/chart%20performance/GuiScreen.png

At the beginning of a measurement switching tabs or the visibility in each tab is possible without any delays but the more values we're adding to the charts, the longer the delay is getting. After some time the application gets unusable as the UI thread is busy wile drawing(?) the chart. Important to mention: the target system is an embedded Windows 7 system with an Intel Atom CPU N270 (1,6GHz) and 1GB of RAM. Nevertheless, the delays can be noticed at our development system, too (Intel i5 2,67GHz, 8GB RAM).

We took some advices of the support center or common wpf advices like buffering values, changing the control template, using VirtualizingStackPanel but there's no remarkable difference.

Why is the chart getting so slow (in my opinion the drawing can't be that expensive) and are there other possibilities to fasten it up?

I made a small demo project that uses a tab control to show four charts and fill them with data each 100 milliseconds. You'll notice that after something around 20-30 seconds the tab item changes will get remarkable slower. You can find it here: http://dl.dropbox.com/u/36135015/telerik%20forum/chart%20performance/ChartPerformance.Demo.zip

Sincerly yours,
Matthias

Yavor
Telerik team
 answered on 11 Aug 2011
1 answer
113 views
In a GridView with a lot of rows I would in first column only unique value shown; this means the cell text should be empty if the value of the cell is the same as the value in the prior row.
How can I do this?

Its a little bit similar to grouped columns

best regards

Andreas Manz
Vanya Pavlova
Telerik team
 answered on 11 Aug 2011
3 answers
193 views
Hi,

I want to use xaml for binding nested collections to the the RadChart. However I don't want to hard code each series mapping manually like the examples show when they make use of multiple datasources or collection index.

As I can draw N number of series on chart at a given time hence hard-coding the series is impractical. Therefore I wanted to know how to handle this case in the most elegant way, by purely using Xaml and databinding the following data structure.

public class Data : INotifyPropertyChanged
    {
        private double m_Value;       
        private int m_Period;
 
        public event PropertyChangedEventHandler PropertyChanged;
 
        public double Value
        {
            get
            {
                return m_Value;
            }
            set
            {
                if (m_Value == value)
                    return;
 
                m_Value = value;
                this.OnPropertyChanged("Value");
            }
        }
       
        public int Period
        {
            get
            {
                return m_Period;
            }
            set
            {
                if (m_Period == value)
                    return;
 
                m_Period = value;
                this.OnPropertyChanged("Period");
            }
        }
 
        protected virtual void OnPropertyChanged(string propertyName)
        {
            if (this.PropertyChanged != null)
                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
 
    public class DataPointSeries : INotifyPropertyChanged
    {
        private ObservableCollection<Data> m_DataList;
        public ObservableCollection<Data> DataList
        {
            get
            {
                return m_DataList;
            }
            set
            {
                m_DataList = value;
                OnPropertyChanged("DataList");
            }
        }              
 
        public event PropertyChangedEventHandler PropertyChanged;
 
        protected virtual void OnPropertyChanged(string propertyName)
        {
            if (this.PropertyChanged != null)
                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
 
public class ChartsViewModel
    {
 
        private ObservableCollection<DataPointSeries> m_DataPointSeriesCollection;
        public ObservableCollection<DataPointSeries> DataPointSeriesCollection
        {
            get
            {
                return m_DataPointSeriesCollection;
            }
            set
            {
                m_DataPointSeriesCollection = value;
            }
        }
 
        public void PopulateDataSeriesCollection()
        {
            DataPointSeriesCollection = new ObservableCollection<DataPointSeries>
            {               
 
                new DataPointSeries
                {
                     DataList = GetDataPoint(0)
                },
                new DataPointSeries
                {
                    DataList = GetDataPoint(12.75)
                },
                new DataPointSeries
                {
                    DataList = GetDataPoint(27.625)
                },
                new DataPointSeries
                {
                    DataList = GetDataPoint(37.675)
                },
                new DataPointSeries
                {
                    DataList = GetDataPoint(43.475)
                }
            };
        }
 
        public ObservableCollection<Data> GetDataPoint(double factor)
        {
            var dataList = new ObservableCollection<Data>()
                    {
                        new Data
                        {
                            Period = 2002,
                            Value = 15 + factor
                        },
                        new Data
                        {
                            Period = 2003,
                            Value = 25 + factor
                        },
                        new Data
                        {
                            Period = 2004,
                            Value = 35 + factor
                        },
                        new Data
                        {
                            Period = 2005,
                            Value = 55 + factor
                        },
                        new Data
                        {
                            Period = 2006,
                            Value = 65 + factor
                        },
                        new Data
                        {
                            Period = 2007,
                            Value = 75 + factor
                        }
                    };
                    return dataList;               
        }
    }


Thanks,
Farhan
Yavor
Telerik team
 answered on 11 Aug 2011
2 answers
121 views
In a screen's add mode, I woiuld like the MakedDateTimeInput control to start displaying an empty text box.  Setting the text property to empty string or null doesnt' work.  Is there a way to get this behavior with the MaskedDateTimeInput control?
Petar Mladenov
Telerik team
 answered on 11 Aug 2011
Narrow your results
Selected tags
Tags
GridView
General Discussions
Chart
RichTextBox
Docking
ScheduleView
ChartView
TreeView
Diagram
Map
ComboBox
TreeListView
Window
RibbonView and RibbonWindow
PropertyGrid
DragAndDrop
TabControl
TileView
Carousel
DataForm
PDFViewer
MaskedInput (Numeric, DateTime, Text, Currency)
AutoCompleteBox
DatePicker
Buttons
ListBox
GanttView
PivotGrid
Spreadsheet
Gauges
NumericUpDown
PanelBar
DateTimePicker
DataFilter
Menu
ContextMenu
TimeLine
Calendar
Installer and Visual Studio Extensions
ImageEditor
BusyIndicator
Expander
Slider
TileList
PersistenceFramework
DataPager
Styling
TimeBar
OutlookBar
TransitionControl
FileDialogs
Book
ToolBar
ColorPicker
TimePicker
MultiColumnComboBox
SyntaxEditor
VirtualGrid
Wizard
ExpressionEditor
NavigationView (Hamburger Menu)
WatermarkTextBox
DesktopAlert
BarCode
SpellChecker
DataServiceDataSource
EntityFrameworkDataSource
RadialMenu
ChartView3D
Data Virtualization
BreadCrumb
LayoutControl
ProgressBar
Sparkline
TabbedWindow
ToolTip
CloudUpload
ColorEditor
TreeMap and PivotMap
EntityFrameworkCoreDataSource (.Net Core)
HeatMap
Chat (Conversational UI)
VirtualizingWrapPanel
Calculator
NotifyIcon
TaskBoard
TimeSpanPicker
BulletGraph
Licensing
WebCam
CardView
DataBar
FilePathPicker
PasswordBox
SplashScreen
Callout
Rating
Accessibility
CollectionNavigator
Localization
AutoSuggestBox
Security
VirtualKeyboard
HighlightTextBlock
TouchManager
StepProgressBar
Badge
OfficeNavigationBar
ExpressionParser
CircularProgressBar
SvgImage
PipsPager
SlideView
AI Coding Assistant
+? more
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?