当前上下文错误中不存在

时间:2013-11-24 13:57:45

标签: c# wpf xaml windows-phone-7

当我尝试将我在XAML中的Image绑定到后面的代码中的bitmapImage对象时,它给了我 '当前上下文中不存在'错误。

代码

BitmapImage bitmapImage = new BitmapImage();
PhotoSource.Source = bitmapImage;
ObservableCollection<BitmapImage> Photos = new ObservableCollection<BitmapImage>();
PhotoList.ItemsSource = Photos;

XAML

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,5,12,-10">
        <ProgressBar x:Name="progressBar" HorizontalAlignment="Left" Height="40" Margin="0,0,0,0" VerticalAlignment="Top" Width="436" Visibility="Collapsed" IsIndeterminate="True"/>
        <ListBox x:Name="PhotoList" 
                 toolkit:TiltEffect.IsTiltEnabled="True"
                 SelectionChanged="PhotoList_SelectionChange"
                 HorizontalAlignment="Left" Height="500" Margin="0,40,0,0" VerticalAlignment="Top" Width="450">
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <toolkit:WrapPanel 
                        HorizontalAlignment="Left" 
                        Margin="0,0,0,0" 
                        VerticalAlignment="Top" 
                    />
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Margin="5">
                        <StackPanel Orientation="Vertical">
                            **<Image delay:LowProfileImageLoader.UriSource="{Binding PhotoSource}" Width="99" Height="80"/>**
                        </StackPanel>
                    </StackPanel>

                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Grid>

2 个答案:

答案 0 :(得分:2)

首先,请确保PhotoSource公开属性,因为WPF无法识别任何其他内容。

其次,请确保正确设置DataContext属性。如果属性是后面窗口代码的一部分,则可以通过设置行来将DataContext设置为窗口:

DataContext="{Binding RelativeSource={RelativeSource self}}"

在xaml的窗口声明中,所以它看起来像这样:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525"
    DataContext="{Binding RelativeSource={RelativeSource self}}">
  <!-- Your Code here -->
</window>

答案 1 :(得分:2)

你需要:

  • 创建一些要绑定到您的类。例如:

    private class Photo {
        public string PhotoSource {get; set;}
    }
    
  • 创建要绑定的集合。例如,List<Photo> Photos = new List<Photo>();

  • 将一些数据添加到列表中。例如,Photos.Add(new Photo { PhotoSource = yourBitmap });
  • 将其绑定到您的列表中。 PhotoList.ItemsSource = Photos;
相关问题