【问题标题】:Issue in DataBinding in WP7WP7 中的数据绑定问题
【发布时间】:2012-02-10 01:11:59
【问题描述】:

这是一个非常奇怪的问题,这是我正在处理的最后一页,我曾经制作 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>

有什么帮助吗? 谢谢。

【问题讨论】:

  • 您能否在您设置DataContext 的位置添加代码。这会有所帮助。

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


【解决方案1】:

看起来您在这里有几个潜在的问题。首先,如果您想从代码隐藏.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>

【讨论】:

    猜你喜欢
    • 2011-07-25
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    相关资源
    最近更新 更多