我有简单的课程
public class A
{
public ImageSource imageSource
{
get;
set;
}
}
页面类:
Public class page : Page
{
A a_class = new A();
}
包含对象类型A的简单silverlight页面。 在这个页面中,我有想要绑定到A的imageSource的Image。
所以我写了它并没有用。
<Image x:Name="Image_" Stretch="Fill"
Source="{Binding imageSource}" DataContext="{StaticResource a_class }"/>
我如何写它以便它能正常工作?
感谢您的帮助。
答案 0 :(得分:1)
StaticResource
标记扩展不会访问加载Xaml的类的字段或属性。删除该行: -
A a_class = new A();
而不是资源字典中的实例A: -
<UserControl x:Class="YourApplication.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
xmlns:local="clr-namespace:YourApplication"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<UserControl.Resources>
<local:A x:Key="a_class" />
</UserControl>
<Grid x:Name="LayoutRoot">
<Image x:Name="Image_" Stretch="Fill"
Source="{Binding imageSource}" DataContext="{StaticResource a_class}"/>
</Grid>
</UserControl>
注意,您希望Image控件跟踪对您需要A
实现INotifyPropertyChanged
的imageSource属性所做的更改。