Hi,
I have implemented a UserControl and put a TreeView control on that. The XAML file looks as follows. I am using a HierarchicalDataTemplate for data binding with the Treeview,
<UserControl x:Class="Trinity.Windows.Viewer.Alarm.AlarmPage.TrinityDeviceTree"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src ="clr-namespace:Trinity.Windows.Viewer.Alarm.AlarmPage"
Height="300" Width="300">
<UserControl.Resources>
<src:SiteList x:Key="SiteListKey"/>
<HierarchicalDataTemplate DataType="{x:Type src:Site}"
ItemsSource="{Binding Path=PartitionsList}">
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
<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 classes bound to the TreeView 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 the XAML file, my projects compiles without error's. I am not getting why I am getting above compilation error.
Please help me on this.