Hi,
I'm using MvvM and the caliburn Micro toolset with the built in PropertyChangedBase.
On my view I have approximately 15 PropertyGrids with each about 12 properties.
In the background the user loads a xml file which is shown then in the view on the propertygrids.
When I fire the NotifyOfPropertyChange the ui blocks and it takes long till the ui reacts again.
The cpu usage goes up to ~25%. Is there a way to give this process more cpu usage or make the
NotifyOfPropertyChange threaded?
Regards Markus
I'm using MvvM and the caliburn Micro toolset with the built in PropertyChangedBase.
On my view I have approximately 15 PropertyGrids with each about 12 properties.
In the background the user loads a xml file which is shown then in the view on the propertygrids.
When I fire the NotifyOfPropertyChange the ui blocks and it takes long till the ui reacts again.
The cpu usage goes up to ~25%. Is there a way to give this process more cpu usage or make the
NotifyOfPropertyChange threaded?
Regards Markus
8 Answers, 1 is accepted
0
Hello Markus,
Maya
Telerik
Will it be possible to try setting IsVirtualizing property of the grid to 'True"and RenderMode to "Flat" ? Do you still get the same performance ?
Maya
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0

Klemens
Top achievements
Rank 1
answered on 11 Oct 2013, 06:58 AM
Hi,
thank you for your approach. On my developer machine it works a little bit faster.
On the client machines (Intel Atom Z2760 4x1,8Ghz, 2 GbRam, Win8) ther is a slight recognizable difference.
I tested it with JustTrace. CPU Loading Time increased from 148 to 146 seconds.
Regards Markus
thank you for your approach. On my developer machine it works a little bit faster.
On the client machines (Intel Atom Z2760 4x1,8Ghz, 2 GbRam, Win8) ther is a slight recognizable difference.
I tested it with JustTrace. CPU Loading Time increased from 148 to 146 seconds.
Regards Markus
0
Hello Markus,
Maya
Telerik
Will it be possible to clarify what exactly you do ? How do you define your property grids ? How do you raise PropertyChanged ? Generally, any relevant information and code snippets will be helpful.
Maya
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0

Klemens
Top achievements
Rank 1
answered on 11 Oct 2013, 08:38 AM
Hi,
the general Layout in my view is:
On my ViewModel I'm Injecting the Model which is singelton:
On my Model I'm using:
On the Task Class I have the properties.
I fear this is bad practice! Is it better to have the properties in the ViewModel?
Regards Markus
the general Layout in my view is:
<
Grid
>
<
StackPanel
>
<
HeaderedContentControl
Header
=
"1"
>
<
telerik:RadPropertyGrid
Item
=
"{Binding Path=Model.SelectedTask}"
>
<
telerik:RadPropertyGrid.PropertyDefinitions
>
<
telerik:PropertyDefinition
Binding
=
"{Binding Name}"
/>
<
telerik:PropertyDefinition
Binding
=
"{Binding Id}"
/>
<
telerik:PropertyDefinition
Binding
=
"{Binding Adress}"
/>
...
</
telerik:RadPropertyGrid.PropertyDefinitions
>
</
telerik:RadPropertyGrid
>
</
HeaderedContentControl
>
<
HeaderedContentControl
Header
=
"2"
>
<
telerik:RadPropertyGrid
Item
=
"{Binding Path=Model.SelectedTask}"
>
<
telerik:RadPropertyGrid.PropertyDefinitions
>
<
telerik:PropertyDefinition
Binding
=
"{Binding Name}"
/>
<
telerik:PropertyDefinition
Binding
=
"{Binding Id}"
/>
<
telerik:PropertyDefinition
Binding
=
"{Binding Adress}"
/>
...
</
telerik:RadPropertyGrid.PropertyDefinitions
>
</
telerik:RadPropertyGrid
>
</
HeaderedContentControl
>
...
</
StackPanel
>
...
</
Grid
>
On my ViewModel I'm Injecting the Model which is singelton:
public
GModel Model{
get
;
set
;}
public
ViewModel()
{
Model = ServiceLocator.Current.GetInstance<Model>();
}
On my Model I'm using:
public
class
GModel : PropertyChangedBase
{
private
Task selectedTask;
public
Task SelectedTask
{
get
{
return
selectedTask;
}
set
{
selectedTask= value;
NotifyOfPropertyChange(() => SelectedTask);
}
}
public
void
SelectionChanged(Task task)
{
SelectedTask = task
}
}
On the Task Class I have the properties.
I fear this is bad practice! Is it better to have the properties in the ViewModel?
Regards Markus
0
Hi Markus,
Maya
Telerik
Please take a look at the sample attached and let me know whether the setup there is similar to yours. Is there something more specific that I need to do in order to reproduce the behavior you described with slower performance ?
Maya
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0

Klemens
Top achievements
Rank 1
answered on 15 Oct 2013, 07:33 AM
Hi,
thank you for your help!
I will change the example to my conditions and test it.
May I upload it, if the behaviour still exists?
Regards Markus
thank you for your help!
I will change the example to my conditions and test it.
May I upload it, if the behaviour still exists?
Regards Markus
0
Hello Markus,
Maya
Telerik
That would be great. Please open a support ticket and attach it there. Thanks in advance.
Maya
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0

Klemens
Top achievements
Rank 1
answered on 15 Oct 2013, 07:36 AM
Thank you!