2010-12-17 96 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
  • ???
  • 利潤

在更普遍的方式,不要直接修改用戶界面:修改了模型,並讓用戶界面進行操作。