2013-01-14 38 views
0

我已經set the XamDataTree image,但我不想每次都將圖像文件夾複製到我的調試文件夾。相反,我想add the image to my project resources並從那裏使用它。目前沒有圖像顯示,因爲它預計到一個圖像的路徑,我給它一個實際的位圖。 TreeNode中的Icon屬性在代碼的另一部分中設置。如何將XamDataTree圖標設置爲位圖而不是文件名

這是我的XAML代碼:

<ig:XamDataTree 
    Grid.Row="1" 
    Name="MyTree" 
    ScrollViewer.CanContentScroll="True" 
    ItemsSource="{Binding ComparedContents}" 
    HorizontalAlignment="Stretch" 
    VerticalAlignment="Stretch" 
    > 
    <ig:XamDataTree.CheckBoxSettings> 
     <ig:CheckBoxSettings CheckBoxVisibility="Visible" /> 
    </ig:XamDataTree.CheckBoxSettings> 
    <ig:XamDataTree.CollapsedIconTemplate> 
     <DataTemplate> 
      <Image Source="{Binding Path=Icon}"/> 
     </DataTemplate> 
    </ig:XamDataTree.CollapsedIconTemplate> 
    <ig:XamDataTree.ExpandedIconTemplate> 
     <DataTemplate> 
      <Image Source="{Binding Path=Icon}"/> 
     </DataTemplate> 
    </ig:XamDataTree.ExpandedIconTemplate> 
    <ig:XamDataTree.GlobalNodeLayouts> 
     <ig:NodeLayout 
      Key="Children" 
      DisplayMemberPath="Text" 
      TargetTypeName="Model.TreeNode" 
      > 
     </ig:NodeLayout> 
    </ig:XamDataTree.GlobalNodeLayouts> 
</ig:XamDataTree> 

這是我的模型,每個屬性都有了價值的私人商店,如果它改變觸發一個事件。

public class TreeNode : INotifyPropertyChanged 
{ 
    public Label Text; 
    public System.Drawing.Image Icon; 
    public ObservableCollection<TreeNode> Children; 
} 

回答

2

假設您將映像嵌入到應用程序中,可以使用pack uri將映像加載到節點模板中。相反,你的圖標屬性使用圖像類型,你應該用開放的,它設置爲這樣的事情:

Icon = new Uri("pack://application:,,,/Resources/Images/icon.png"); 

你需要修改你的模板有點綁定因爲此模板的DataContext的是要是一個XamDataTreeNodeDataContext。這個對象有一個Data屬性,它將是你的TreeNode對象。您的綁定應更新爲:

<Image Source="{Binding Path=Data.Icon}"/> 
相關問題