无法对图像进行绑定

时间:2011-03-30 14:01:38

标签: silverlight

我有简单的课程

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 }"/>

我如何写它以便它能正常工作?

感谢您的帮助。

1 个答案:

答案 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属性所做的更改。