2013-07-30 28 views
0

无法访问所选择的图像中的列表框在WPF访问动态添加图像到列表框

的.xaml代码:

<ListBox x:Name="listBox" Margin="10,282,0,0" Grid.ColumnSpan="2"> 

        <ListBox.ItemsPanel> 
        <ItemsPanelTemplate> 
         <WrapPanel FlowDirection="LeftToRight" ItemWidth="120" ItemHeight="120"/> 
        </ItemsPanelTemplate> 
       </ListBox.ItemsPanel> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <Button x:Name="b" Click="b_Click_1" Width="120" Height="120" > 
          <Image HorizontalAlignment="Left" 
          Margin="-10,-10,-10,-10" 
          x:Name="image1" 
          Stretch="Fill" 
          VerticalAlignment="Top" Source="{Binding}" 
         /> 
         </Button> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 

的.cs代码:

private void b_Click_1(object sender, RoutedEventArgs e) 
    { 
      try 
     { 
      MessageBoxResult a = MessageBox.Show("Are you want to upload", "Photo Upload", MessageBoxButton.OKCancel); 
      if (a == MessageBoxResult.OK) 
      { 
System.Drawing.Image b1 = (sender as Button).DataContext as System.Drawing.Image; 
      } 
     } 
    } 

在上述.cs文件'b1'的代码即使在我点击图像后也显示'null'值。

+4

没有'Bitmap'。在按钮的Content中有一个Image控件,从上一个问题我们知道'DataContext'中有一个文件路径字符串。我强烈建议在开始编码之前阅读这个主题(也可能是一般的WPF)。 – Clemens

+0

'System.Drawing.Image'也是错误的。它是['System.Windows.Controls.Image'](http://msdn.microsoft.com/en-us/library/system.windows.controls.image.aspx)。开始阅读MSDN上的[Imaging Overview](http://msdn.microsoft.com/en-us/library/ms748873.aspx)文章。真! – Clemens

+0

你想要对图像做什么? – Clemens

回答

0

您的Image控件位于Button.Content属性中,而不是Button.DataContext属性。此外,Image控件不是Bitmap。试试这个:

Image image = ((Button)sender).Content as Image; 

或者如果你只是想访问该映像文件的路径:在按钮的`DataContext`

var imageFile = ((Button)sender).DataContext as string; 
+0

对不起,它不适用于我,我试过 – user2617873

+0

@Clemens是正确的...你需要去做一些WPF阅读。虽然我不知道他为什么不只是添加他自己的答案,而不是改变我的。克莱门斯,你的添加改变了我的答案的含义,甚至没有意义,除非你读到他的其他帖子,甚至没有连接到这里。错误的编辑。 :( – Sheridan

+0

你的答案或多或少只是之前作为对问题的评论而写的内容的副本,但是如果没有这个补充,它是不完整的,因为它实际上并不清楚OP将如何处理图像中的图像按钮,他或她想访问位图或图像文件吗?至少消息框标题提到了上传,所以我的猜测是访问文件并将其上传到某处并不是一个完全不切实际的目的。 – Clemens