WP7中的DataBinding问题

时间:2012-02-10 01:11:59

标签: image windows-phone-7 xaml binding textblock

这是一个非常奇怪的问题,这是我正在处理的最后一页,我曾经使用ListBox的ObservableCollection来添加文本块和图像中的数据并绑定数据。

但这次我只有1个TextBlock和1个Image,我需要将数据绑定到它。 在.cs文件中,我无法直接访问它们,并且DataBinding也无法正常工作。

的Xaml:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <TextBlock Text="{Binding lastName}" Height="33" Margin="0,175,8,0" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalAlignment="Right" Width="336" />
        <ListBox ItemsSource="{Binding lastAddress}" Margin="8,291,8,8"/>
        <TextBlock HorizontalAlignment="Left" Height="33" Margin="8,0,0,0" TextWrapping="Wrap" Text="Restaurant Profile: " VerticalAlignment="Top" Width="225" TextDecorations="Underline" Foreground="#FF7A0100" FontSize="24"/>
        <Image Source="{Binding lastImage}" Height="132" Margin="8,37,292,0" VerticalAlignment="Top" Stretch="None"/>
    </Grid>

有任何帮助吗? 感谢。

1 个答案:

答案 0 :(得分:0)

看起来你在这里遇到了一些潜在的问题。首先,如果要从代码隐藏.cs文件访问控件,则需要提供控件名称,如下所示:

<Grid Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <TextBlock Name="MyTextBlock" />
</Grid>

然后可以在代码隐藏中访问它们:

public MainPage()
{
    InitializeComponent();
    DoStuff();
}

private void DoStuff() 
{
    MyTextBlock.Text = "Hey, it works!";
}

其次,为了使数据绑定工作,您需要在XAML或代码隐藏文件中为页面设置DataContext

在代码隐藏文件中,您可以这样做:

public MainPage()
{
    InitializeComponent();
    LayoutRoot.DataContext = this;
}

这允许你像这样数据绑定:

<Grid Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <TextBlock Name="MyTextBlock" Text="{Binding MyProperty}"/>
</Grid>