Tree view databinding MVVM

I am trying to bind a view model to the tree view and I can't seem to get it to work. I have looked at all the examples and can't seem to find any working example using MVVM pattern. Here is the xaml

AllowDragDrop="True"
Name="CargoTree"
ItemContainerStyle="{StaticResource TreeViewItemStyle2}"
ItemTemplate="{StaticResource FiledataTemplate2}"
MultiColumnEnable="True" AllowMultiSelect="False">




DisplayMemberBinding="{Binding Path=Pieces}"
Header="Pieces"
Width="50"/>
DisplayMemberBinding="{Binding Path=PackageType}"
Header="PackageType"
Width="100"/>
DisplayMemberBinding="{Binding Path=ShortDesciption}"
Header="ShortDesciption"
Width="100" />
DisplayMemberBinding="{Binding Path=Weight}"
Header="Weight"
Width="50" />
DisplayMemberBinding="{Binding Path=Volume}"
Header="Volume"
Width="50" />
DisplayMemberBinding="{Binding Path=VolumeWeight}"
Header="VolumeWeight"
Width="50" />
DisplayMemberBinding="{Binding Path=Dimensions}"
Header="Dimensions"
Width="100" />
DisplayMemberBinding="{Binding Path=Quantity}"
Header="Quantity"
Width="50" />







In my app.xaml I have



Margin="2,0" />






And my view model looks like this

public class ItemViewModel
{
bool _isExpanded;
bool _isSelected;

public string Pieces { get; set; }

public string PackageType { get; set; }

public string ShortDesciption { get; set; }

public string Weight { get; set; }

public string Volume { get; set; }

public string VolumeWeight { get; set; }

public string Dimensions { get; set; }

public string Quantity { get; set; }

public ObservableCollection Children { get; set; }

public bool IsExpanded
{
get { return _isExpanded; }
set
{
if (value != _isExpanded)
{
_isExpanded = value;
this.OnPropertyChanged("IsExpanded");
}

// Expand all the way up to the root.
if (_isExpanded && _parent != null)
_parent.IsExpanded = true;
}
}

public ItemViewModel(string name)
{
PackageType = name;
Children = new ObservableCollection();
}

public void AddChild(string name)
{
Children.Add(new ItemViewModel(name));
}

public bool IsSelected
{
get { return _isSelected; }
set
{
if (value != _isSelected)
{
_isSelected = value;
this.OnPropertyChanged("IsSelected");
}
}
}

private ItemViewModel _parent;
public ItemViewModel Parent { get { return _parent; } }

#region INotifyPropertyChanged Members

public event PropertyChangedEventHandler PropertyChanged;

protected virtual void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}

#endregion
}




2 Replies

RS Rafael Soto September 23, 2010 03:48 AM UTC

Sorry posted in the wrong forum, this should of gone in the WPF forum. I have posted there.



MM Mageshyadav M Syncfusion Team September 30, 2010 04:33 AM UTC

Hi Rafael,

Your query has been already answered through Forum

http://www.syncfusion.com/support/forums/general/96623

Please refer to forum 96623.

Regards,
Mageshyadav.M


Loader.
Up arrow icon