2010-12-17 29 views
0

我在C#应用程序中使用了System.Windows.Controls.Grid。当表单加载时,我在单元格中添加了UIElement。但是当我点击单元格时,如何获得当前的UIElement从C#Grid Control获取单元格内容

PS:我搜索了网页,发现我们需要循环访问UIElementCollection并获取值。

但这不是一个好主意。因为,如果我们有1000个单元格并且它有1000个媒体元素,那么我需要遍历所有UIElement s。所以建议我如何获取内容。

我的代码片段:(试行)

  private void DispImage(System.Windows.UIElement uiElement) 
      { 
       foreach (var item in this.grid1.Children) 
       { 
        if (item is textBox1) 
        { 
         element = item; 
         break; 
        } 
       } 
       if (element != null) 
       { 
        this.grid1.Children.Remove(element as UIElement); 
       } 

       if (uiElement != null) 
       { 
        Grid.SetRow(uiElement, CurrentRow); 
        Grid.SetColumn(uiElement, CurrentColumn); 
       if (this.DynamicGrid.Children.IndexOf(UIElement) == -1) 
        this.DynamicGrid.Children.Add(uiElement); 
       } 
      } 

这里UIElementImageObject

回答

0

你,因为你是在一个非常古老的风格在使用WPF的WinForms方式有很多麻烦。

熟悉的概念,如模型绑定命令,它会很好地解决。

在你的情况下,它的意思是:

  • 为您的项目模型,并把它放在一个模型集合
  • 在绑定模型到模板ItemsControl,适当ItemsPanel
  • 定义模板您的物品包裹您的UIElementButton
  • 实现Command做任何你想做的事
  • 将您的Command指定给您的Button
  • ???
  • 利润

在更普遍的方式,不要直接修改用户界面:修改了模型,并让用户界面进行操作。