Click here to Skip to main content
15,888,733 members
Home / Discussions / WPF
   

WPF

 
GeneralRe: Setting an expiry date for WPF Theme DLL Pin
Prasoon Chaudhary27-Nov-11 18:09
Prasoon Chaudhary27-Nov-11 18:09 
QuestionWPF TreeView DataTemplate - Select Visual Parent Pin
Kevin Marois25-Nov-11 8:48
professionalKevin Marois25-Nov-11 8:48 
AnswerRe: WPF TreeView DataTemplate - Select Visual Parent Pin
SledgeHammer0126-Nov-11 10:12
SledgeHammer0126-Nov-11 10:12 
GeneralRe: WPF TreeView DataTemplate - Select Visual Parent Pin
Kevin Marois26-Nov-11 11:02
professionalKevin Marois26-Nov-11 11:02 
GeneralRe: WPF TreeView DataTemplate - Select Visual Parent Pin
Kevin Marois28-Nov-11 11:44
professionalKevin Marois28-Nov-11 11:44 
GeneralRe: WPF TreeView DataTemplate - Select Visual Parent Pin
SledgeHammer0128-Nov-11 12:02
SledgeHammer0128-Nov-11 12:02 
GeneralRe: WPF TreeView DataTemplate - Select Visual Parent Pin
Kevin Marois28-Nov-11 12:25
professionalKevin Marois28-Nov-11 12:25 
GeneralRe: WPF TreeView DataTemplate - Select Visual Parent Pin
SledgeHammer0128-Nov-11 12:36
SledgeHammer0128-Nov-11 12:36 
Ah, yeah... I added that method to simplify node selection and to automatically expand and select hidden nodes -- something which is kinda tricky Smile | :) .

public bool SelectItem(object item)
{
if ((SelectedItem != null) && (SelectedItem.Equals(item)))
return true;

if (!ExpandAndSelectItem(this, item))
{
UpdateLayout();
return ExpandAndSelectItem(this, item);
}

return true;
}


and you'll need this one too (NOTE: I was too lazy to do it, but you need to change the TreeViewItemExs to standard TreeViewItems in this function):


private bool ExpandAndSelectItem(ItemsControl parentContainer, object itemToSelect)
{
TreeViewItemEx tvi = parentContainer.ItemContainerGenerator.ContainerFromItem(itemToSelect) as TreeViewItemEx;

if ((object)tvi != null)
{
tvi.IsSelected = true;
tvi.BringIntoView();
tvi.Focus();
return true;
}

for (int nIndex = 0; nIndex < parentContainer.Items.Count; nIndex++)
{
TreeViewItemEx currentContainer = parentContainer.ItemContainerGenerator.ContainerFromIndex(nIndex) as TreeViewItemEx;

if (((object)currentContainer != null) && (currentContainer.Items.Count > 0))
{
bool bIsExpanded = currentContainer.IsExpanded;

if (currentContainer.ItemContainerGenerator.Status != GeneratorStatus.ContainersGenerated)
{
EventHandler handler = null;

handler = new EventHandler(delegate
{
if (currentContainer.ItemContainerGenerator.Status == GeneratorStatus.ContainersGenerated)
{
if (ExpandAndSelectItem(currentContainer, itemToSelect) == false)
currentContainer.IsExpanded = false;

currentContainer.ItemContainerGenerator.StatusChanged -= handler;
}
});

currentContainer.ItemContainerGenerator.StatusChanged += handler;

if (currentContainer.IsExpanded == false)
currentContainer.IsExpanded = true;
}
else
{
if (ExpandAndSelectItem(currentContainer, itemToSelect) == false)
currentContainer.IsExpanded = bIsExpanded;
else
return true;
}
}
}

return false;
}

I think that should be all you need Smile | :) . Now when you change the SelectedItemEx through binding and the node is hidden, it'll auto-expand all the necessary parent nodes and bring the requested node into view.
QuestionCross-field validation Pin
Geysser24-Nov-11 4:39
Geysser24-Nov-11 4:39 
AnswerRe: Cross-field validation Pin
Pete O'Hanlon24-Nov-11 10:24
mvePete O'Hanlon24-Nov-11 10:24 
GeneralRe: Cross-field validation Pin
Geysser24-Nov-11 17:58
Geysser24-Nov-11 17:58 
GeneralRe: Cross-field validation Pin
Wayne Gaylard24-Nov-11 18:41
professionalWayne Gaylard24-Nov-11 18:41 
GeneralRe: Cross-field validation Pin
Geysser24-Nov-11 20:24
Geysser24-Nov-11 20:24 
GeneralRe: Cross-field validation Pin
Pete O'Hanlon24-Nov-11 22:11
mvePete O'Hanlon24-Nov-11 22:11 
GeneralRe: Cross-field validation Pin
Geysser24-Nov-11 23:33
Geysser24-Nov-11 23:33 
QuestionDataTemplate Binding Question Pin
Kevin Marois23-Nov-11 7:02
professionalKevin Marois23-Nov-11 7:02 
AnswerRe: DataTemplate Binding Question Pin
SledgeHammer0123-Nov-11 11:30
SledgeHammer0123-Nov-11 11:30 
Questionsilverlight version Pin
arkiboys23-Nov-11 6:18
arkiboys23-Nov-11 6:18 
AnswerRe: silverlight version Pin
Mark Salsbery23-Nov-11 8:57
Mark Salsbery23-Nov-11 8:57 
QuestionOpenDialog Pin
Dammie223-Nov-11 5:56
Dammie223-Nov-11 5:56 
AnswerRe: OpenDialog Pin
Pete O'Hanlon23-Nov-11 6:01
mvePete O'Hanlon23-Nov-11 6:01 
QuestionRe: OpenDialog Pin
Dammie223-Nov-11 6:11
Dammie223-Nov-11 6:11 
AnswerRe: OpenDialog Pin
Pete O'Hanlon23-Nov-11 9:04
mvePete O'Hanlon23-Nov-11 9:04 
GeneralRe: OpenDialog Pin
Dammie223-Nov-11 23:28
Dammie223-Nov-11 23:28 
GeneralRe: OpenDialog Pin
Pete O'Hanlon23-Nov-11 23:45
mvePete O'Hanlon23-Nov-11 23:45 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.