|
Create a read only property on the object for the font and background that you want, and bind the relevant properties in the ItemTemplate?
|
|
|
|
|
Hi,
This the type of xaml I am using to navigate...
Question:
Whether or not I use the TargetName="mainFrame" in the hyperlink button, the user still gets navigated to the Signup page inside the frame.
What is the benefit of using the TargetName in this case?
Thanks
<navigation:Frame x:Name="mainFrame" UriMapper="{StaticResource UriMapper}"
Source="Home" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" >
</navigation:Frame>
<stackpanel>
...
<HyperlinkButton x:Name="SignupLink" NavigateUri="Signup" TargetName="mainFrame" Content="Signup" Style="{StaticResource FooterLinksStyle}" />
</stackpanel>
|
|
|
|
|
I want to enable drag/drop in my app.
1) Allow the user to drag a shape off a ToolBox onto the canvas (I'm assuming canvas is what I want). I could live with "click and place", versus drag onto the canvas.
2) Allow the user to move the control around on the canvas.
When I Google WPF Drag Drop all I seem to find is dragging data from one control to another, which is not what I want.
Anyone have an example of how to do this?
Everything makes sense in someone's mind
|
|
|
|
|
|
That's EXACTLY what I want
Thanks
Everything makes sense in someone's mind
|
|
|
|
|
How about this[^]?
The funniest thing about this particular signature is that by the time you realise it doesn't say anything it's too late to stop reading it.
|
|
|
|
|
I understand that the WPF TreeView control is all whizzy and customisable but it is truly horrible to use - great wodges of code just to expand an item or select an item.
Are there any more usable TreeViews on the market? I have wasted an entire day (again) wrestling with the builtin TreeView and I have decided I want a TreeView which works. Anybody got any suggestions?
|
|
|
|
|
If you are having trouble with the WPF TreeView, I'm assuming its because you are manually managing the TreeViewItems? Manually managing a TreeView and its items is pretty bad and you end up with horrid code. If you use the TreeView as intended with data binding and HierarchialDataTemplates, its a breeze.
modified on Thursday, March 31, 2011 1:23 PM
|
|
|
|
|
If not a breeze, at least a mild stirring of wind
|
|
|
|
|
I am using databinding and HierarchialDataTemplates. How do I tell the treeview to expand the root node when it is loaded and how do I select an item in the treeview when it is loaded? If I was adding TreeViewItems in code it would be easy to epand the root node and select an item but I am not, I am doing it the WPF way.
|
|
|
|
|
Ok, no problem. Dealing with item based controls in WPF is kind of a PITA because... Well, lets say you are binding to a collection of type Widget. So part of the tree control interacts with objects of type Widget, and other stuff you need to do is in the wrapping type TreeViewItem. TreeViewItem wraps your Widget class. One tricky aspect that kills a lot of people is that the TreeViewItem item that wraps a specific Widget doesn't exist all the time and randomly changes instances (like when the visual goes off screen).
In your case, you want to set the TreeViewItem.IsExpanded and the TreeViewItem.IsSelected.
You use ItemContainerGenerator.ContainerFromItem(widget) to go from a Widget to a TreeViewItem, but as I said above, the TreeViewItem don't exist all the time and comes and goes. So you have to subcribe to the ItemContainerGenerator.StatusChanged event to know when you can access the TreeViewItem.
What a lot of people do is add IsExpanded and IsSelected properties to the Widget object and in the XAML bind the Widget IsExpanded to the TreeViewItem.IsExpanded. The two properties in Widget either need to be dependency properties or Widget needs to implement INotifyPropertyChanged.
That way you will ALWAYS have access to the two properties and you just set / get them in your Widget object.
modified on Friday, April 1, 2011 1:17 AM
|
|
|
|
|
I have been trying that but without much success. I will give it another go. Thanks
|
|
|
|
|
Tried adding IsExpanded properties to the widget with INotifyPropertyChanged with a TreeViewItem Style binding IsExpanded. It doesn't make any difference.
When should I set the IsExpanded property to true? I need the root node to be expanded as soon as the window is shown
I really just want a simple treeview which works as a treeview should work.
|
|
|
|
|
Fixed it - I alread had a style on TreeViewItem so adding another one just got ignored
|
|
|
|
|
Glad you got this working .
|
|
|
|
|
|
Any idea how to scroll a selected item into view? I have tried the many ways people have posted on various sites but no joy yet. 2 days and counting on this lousy treeview so far. It should have taken 5 minutes.
|
|
|
|
|
Hmm, I have added this to the TreeViewItem style:
<EventSetter Event="Selected" Handler="OnTreeViewItemSelected" />
and call BringIntoView on the OriginalSource
seems to work.
|
|
|
|
|
Telerik has a control.[^]
The funniest thing about this particular signature is that by the time you realise it doesn't say anything it's too late to stop reading it.
|
|
|
|
|
Unfortunately it is part of a bundle and looking at some of the questions posted on their site it possibly looks to suffer from the same problems.
You'd think expanding a node in a treeview would be easy - it's what a treeview does isn't it? But nope - now we have the super whizzy treeview which can be styled to do anything - except operate as a usable treeview without having to go through hoops to batter it into shape.
|
|
|
|
|
Hi,
I am now confident about how to navigate between usercontrols and navigation pages...
How can i pass a value from say navigation page1 to navigation page2.xaml by clicking a hyperlink button?
Thanks
|
|
|
|
|
A common way to accomplish this is to have a static class which is used to place the value in. As you know, a static class is globally scoped so the whole application sees the same instance. There is a trend to see people recommending that the value is placed in the App class as this is available all over - do not do this; this is bad practice.
|
|
|
|
|
I think I see what you mean.
I know that the static class does not have to be instantiated...
How can I place the value inside this static class so that it gets passed to page2.xaml from page1.xaml ?
Do you mean to create a static class and add property get and set for each parameter name?
I tried it and seems to work. I always thought in silverlight you pass parameters between pages as in asp.net which is like ?value1=xyz&value=sas...
Thanks
modified on Thursday, March 31, 2011 11:30 AM
|
|
|
|
|
Suppose that you want something a little bit more complicated:
public class MyModel
{
public string ForeName { get; set; }
public string Surname { get; set; }
} Well, you could have a class - we'll call it NavigationManager - that looks like this:
public static NavigationManager
{
static NavigationManager()
{
Page1Model = new MyModel{ ForeName = string.Empty, Surname=string.Empty };
}
public MyModel Page1Model { get; set; }
} Then, setting your values is as simple as:
NavigationManager.Page1Model.ForeName = myForename;
NavigationManager.Page1Model.Surname = mySurname; Retrieving the data from another page is just as trivial (although I'd prefer to use the ViewModel on both sides rather than code behind).
|
|
|
|
|
I have now created a static class with static properties.
Placed the properties inside the class with get and set.
page1 sets the value of the property and then navigates to page2.
page2 reads the property from the static class.
Is this method in silverlight more efficient or better than the asp.net method which was like &value1=xyz&value2sdd... and request.param[value1]... ?
Thanks
|
|
|
|