我set the XamDataTree image,但我不想每次都将图片文件夹复制到我的调试文件夹中。相反,我想add the image to my project resources并从那里使用它。目前没有显示图像,因为它需要一个图像的路径,我给它一个实际的位图。 TreeNode中的Icon属性设置在代码的另一部分中。
这是我的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>
这是我的模型,每个Property都有一个私有商店用于值,并在事件发生变化时触发事件。
public class TreeNode : INotifyPropertyChanged
{
public Label Text;
public System.Drawing.Image Icon;
public ObservableCollection<TreeNode> Children;
}
答案 0 :(得分:2)
假设您将图像嵌入到应用程序中,可以使用pack uri将图像加载到节点模板中。不要在Icon属性上使用Image类型,而应使用Uri并将其设置为如下所示:
Icon = new Uri("pack://application:,,,/Resources/Images/icon.png");
您需要稍微修改模板中的绑定,因为此模板的DataContext将是XamDataTreeNodeDataContext。此对象具有Data属性,该属性将是您的TreeNode对象。您的绑定应更新为:
<Image Source="{Binding Path=Data.Icon}"/>