|
Thank you ABitSmart.
As far as I know , we should use ItemsPresenter in DataTemplating !
Isn't it ?
|
|
|
|
|
ItemsPresenter is more of ControlTemplate thingy. Now, if I have confused you more, read here Link[^]
See this also Link[^]
|
|
|
|
|
Thank you for the responses
|
|
|
|
|
Have fun
|
|
|
|
|
Hello guys.
How can we minimize a WPF window with C# ?
Thank you
|
|
|
|
|
Like this,
this.WindowState = WindowState.Minimized;
where this is my Window object.
|
|
|
|
|
|
Appreciate the reply. Glad to be of help.
|
|
|
|
|
Hi,
There is a weird problem for which I will have to do some explanation on background.
I am working on a WPF client application which has about 3-4 usercontrols loaded, each having a listview displaying records using a observable collection. This observable collection is a collection of class instances that follow the INotifyPropertyChanged model. Upon each change in the collection the change reflects onto the listview column. Updates to existing rows in the collection keep streming in from the server using WCF TCP/IP at about 100-200 updates per second.
The issue is that once in a while the UI just freezes and then the no of threads attached to the process (seen in the task manager) keep on increasing exponentially.. I have no clue why this happens.. when i debug the updates are still coming in and observable collection is still getting updated.. but the UI hangs.. This does not happen always or on a particular action.
I am using Dispatcher.BeginInvoke when adding items to the listview but not when updating the properies of instances within the collection as observable collection automatically takes care of such updates. I am also using Virtualization in listview which is anyways enabled by default.
Any clues what could be causing this..
Pankaj Chamria,
Software Programmer.
|
|
|
|
|
Suggestions,
- The only thing striking from your description is, your object implements INotifyPropertyChanged. ObservableCollection inherently implement the change notification. You might want to try disabling the property change mechanism of the objects and just rely on the ObservableCollection.
- What DispatcherPriority do you set for BeginInvoke ? Did you try setting it to a lower priority e.g. Background ?
- Don't update the main Observable collection. Work on a different one and periodically replace the main one with the updated one. I don't feel good about this one though :>
|
|
|
|
|
Thanks for your reply.
I am using two collections. Collection A is a list of objects which implement INotifyPropertyChanged. It gets updated continuosly using a worker thread. Collection B is my observable collection hosted in the UI thread, which observes on Collection A elements. I used Normal priority. Using Background too causes this issue, although it occurs less frequently.
The issue seems to be with the wpf framework, although i am not sure. I found the solution to my problem on the following thread, which makes for a good reading.
http://social.expression.microsoft.com/Forums/en-US/wpf/thread/e55530dc-a358-4c6b-81b6-25a11c173a22/[^]
Now i let the background thread do the updations as fast as it wants to without raising the property changed events at that time, but i raise all the property changed events for all objects in collection from the UI thread on every 100 frames using the CompositionTarget.Rendering event. Now the hang problem is thankfully put to rest!
PS: You mentioned that even without raising the property changed events, my listview should get updated as I am using the observable collection. But I tested it out. It does not work without raising the PropertyChanged event, for my design of using 2 collections.
Pankaj Chamria,
Software Programmer.
|
|
|
|
|
The article was definitely a nice read.
You did not mention that you were working with 2 collections. The fine frequency of update would be causing WPF go bonkers, I sensed that and so provided you the third option.
I had faced something similar when WPF was beta. I needed updates as fast as 100ms with plotting on a WPF graph. The app just died away! Microsoft recommendation was wait for the 3.0 release having performance boosting. I settled with DirectX plotting finally.
It's great to know you've got things sorted out. Have fun :>
|
|
|
|
|
Can you offload any of the work to a Background Worker thread?
|
|
|
|
|
My searches are coming back with limited results, so I thought I would ask the question directly.
What's best in terms of components (DataGrid) or even framework (WPF) to use to develop a Windows desktop application the UI of which is primarily going to consist of two read-only data grids which needs to be updated in real time with data coming in from serial ports at a 10Hz rate?
Thanks in advance.
Siraj.
Siraj Podikunju
SP Consulting, Inc.
sirajp@spconsult.com
|
|
|
|
|
Try WPF. The new .Net 3.5 SP1 improves WPF performance.
|
|
|
|
|
I'm trying to force the aero appearance in a wpf form. My app.xaml file looks like this:
<Application x:Class="AnagramsWPF.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window1.xaml">
<Application.Resources>
<ResourceDictionary Source="/PresentationFramework.Aero;component/themes/aero.normalcolor.xaml" />
</Application.Resources>
</Application>
When I run the app under the debugger, it runs fine, but if I run it without the debugger, it throws this exception:
'/PresentationFramework.Aero;component/themes/aero.normalcolor.xaml' value cannot be assigned to property 'Source' of object 'System.Windows.ResourceDictionary'. Could not load file or assembly 'PresentationFramework.Aero, Culture=neutral' or one of its dependencies. The system cannot find the file specified. Error at object 'System.Windows.ResourceDictionary' in markup file 'AnagramsWPF;component/app.xaml' Line 6 Position 29.
I have no earthly clue how to fix it. Can anyone help?
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Change it to
<ResourceDictionary Source="/PresentationFramework.Aero,
Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35,
ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
That makes it fail under debug as well.
'Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml' value cannot be assigned to property 'Source' of object 'System.Windows.ResourceDictionary'. Cannot locate resource 'version=3.0.0.0,%20culture=neutral,%20publickeytoken=31bf3856ad364e35,%20processorarchitecture=msil;component/themes/aero.normalcolor.xaml'. Error at object 'System.Windows.ResourceDictionary' in markup file 'AnagramsWPF;component/app.xaml' Line 6 Position 29.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Sorry - I should have put it in as
<ResourceDictionary Source="/PresentationFramework.Luna;V3.0.0.0;31bf3856ad364e35;
component\themes/luna.normalcolor.xaml" />
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
That was it. Thanks.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
No bother. Glad to help.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
Weren't you just ranting about how much you hate WPF and yet you are using it? What's up with that? Just wondering
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Individuality is fine, as long as we do it together - F. Burns
Help humanity, join the CodeProject grid computing team here
|
|
|
|
|
WPF, in my opinion, is one of the greatest technologies in software development. Period! I am working on a project now that would have taken me eons with MFC. With C# and WPF, it is a breeze - and the power is amazing.
|
|
|
|
|
BlitzPackage wrote: WPF, in my opinion, is one of the greatest technologies in software development.
I'm willing to bet that you haven't even been a programmer for more than just a few years (if that)... The people that "don't get it" (like me) have been programming since long before Microsoft even existed.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Actually, my apologies if I offended.
Indeed, my comment is meant to communicate my effusive assessment of WPF.
However, you are right that I am new to programming. I actually started with C++, moved to Visual C++, then to C# and WPF. I am self-taught and have been toying around with all of this since around 1999 or so. I just started developing my own software app about a year ago in WPF.
At any rate, I hope you find solutions to your challenges.
Cheers,
Blitz
|
|
|
|