绑定到Code Behind不起作用

时间:2013-01-09 15:52:40

标签: c# windows xaml windows-8

我有一个按钮,它调用一个方法,用List<string>填充图像路径。每次调用此方法以显示生成的所有图像时,我都会尝试更新Windows 8应用程序。 目前它不会显示任何内容,尽管只是将图像路径硬编码到List<string>

我显示图像的XAML代码是:

        <ItemsControl ItemsSource="{Binding Path=test}" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="5"
      HorizontalContentAlignment="Stretch">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Image Source="{Binding}" />
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

在Xaml.cs中:

public sealed partial class MainPage : TestApp.Common.LayoutAwarePage
{

    public List<string> test = new List<string>();
    public MainPage()
    {
        test.Add("C:\\Users\\user\\Pictures\\image.jpg");
        this.InitializeComponent();
    }
}

我做错了什么/需要在这里更改?非常感谢:)。

1 个答案:

答案 0 :(得分:3)

您需要设置MainPage的DataContext。把它放在你的MainPage xaml上。

DataContext="{Binding RelativeSource={RelativeSource Self}}"

编辑:您需要在代码隐藏中拥有属性,而不是字段:

public List<string> test {get; set;}
public MainPage()
{
    test = new List<string>();
    test.Add("C:\\Users\\user\\Pictures\\image.jpg");
    this.InitializeComponent();
}