tags:

views:

70

answers:

0

Hi, I have implemented user control and put TreeView control on that, XAML file looks as follows I am using HierarchicalDataTemplate for databinding with Treeview,


     <HierarchicalDataTemplate  DataType     =   "{x:Type src:Partition}" 
                               ItemsSource  =   "{ Binding Path =MasterDeviceList}">
        <TextBlock Text="{Binding Path=Name}"/>
    </HierarchicalDataTemplate>

    <HierarchicalDataTemplate  DataType     =   "{x:Type src:MasterDevice}" 
                               ItemsSource  =   "{ Binding Path =SlaveDeviceList}">
        <TextBlock Text="{Binding Path=Name}"/>
    </HierarchicalDataTemplate>

    <DataTemplate DataType="{x:Type src:SlaveDevice}">
        <TextBlock Text="{Binding Path=Name}"/>
    </DataTemplate> 
</UserControl.Resources>

<Grid Width="auto" Height="auto">
    <Grid.RowDefinitions>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <TreeView  Name = "DeviceTree"/>
</Grid>

I have data class bound to the Treeview is as follows

namespace Trinity.Windows.Viewer.Alarm.AlarmPage {

public class Site
{
    public Site(string name)
    {
        _name = name;
        _partitions = new ObservableCollection<Partition>();
    }
    string _name;
    public string Name { get { return _name; } }
    ObservableCollection<Partition> _partitions;
    public List<Partition> PartitionsList { get { return _partitions; } }
}

public class Partition
{
    public Partition(string name)
    {
        _name = name;
        _masterdevice = new ObservableCollection<MasterDevice>();
    }
    string _name;
    public string Name { get { return _name; } }
    ObservableCollection<MasterDevice> _masterdevice;
    public ObservableCollection<MasterDevice> MasterDeviceList { get { return _masterdevice; } }
}

public class MasterDevice
{
    public MasterDevice(string name)
    {
        _name = name;
        _slavedevice = new ObservableCollection<SlaveDevice>();
    }
    string _name;
    public string Name { get { return _name; } }
    ObservableCollection<SlaveDevice> _slavedevice;
    public ObservableCollection<SlaveDevice> SlaveDeviceList { get { return _slavedevice; } }
}

public class SlaveDevice
{
    public SlaveDevice(string name)
    {
        _name = name;
    }

    string _name;

    public string Name { get { return _name; } }
}

public class SiteList : ObservableCollection<Site>
{
    public Site this[string name]
    {
        get
        {
            foreach (Site objSite in this)
                if (objSite.Name == name)
                    return objSite;
            return null;
        }
    }
}

}

But now when I compile this code I get following error

error MC1000: Unknown build error, 'Could not load type 'System.ComponentModel.IEditableCollectionView' from assembly 'WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Line 9 Position 87.' in xaml file.

Now if I comment code containing HierarchicalDataTemplate in XAML file, My projects compiles without error's. I am not getting why I am getting above compliation error Please help me on this.