2012-07-15 56 views

回答

0

Name屬性是你給該控件的名稱。

在XAML你用x指定它:姓名或簡單地象下面這樣控制的名稱屬性。這意味着你正在創建一個名爲TextBox1的TextBox類的對象。

<TextBox x:Name="TextBox1"/> 
<TextBox Name="TextBox2"/> 

在它後面的代碼是對象的名稱

TextBox TextBox1 = new TextBox(); 

同樣部首是的DataGridColumn的屬性。

我希望這將有助於。

1

對於誰是仍然有這個問題的人。

你有這樣的模板:

<DataTemplate x:Key="DataGridColumnHeaderTemplate"> 
    <StackPanel> 
     <DockPanel x:Name="DockPanelFilter"></DockPanel> 
     <StackPanel Orientation="Horizontal"> 
      <TextBlock Text="{Binding}"></TextBlock> 
      <Image x:Name="ImageLock" Source="Resources/lock.png" Width="14" Height="14" Margin="2,0,0,0"></Image> 
     </StackPanel>  
    </StackPanel> 
</DataTemplate> 

,你要訪問的ImageLock圖像。 你可以使用:

Public Shared BooAfterItemsPresenter As Boolean = False 
Public Shared ColumnName As String = String.Empty 
Public Shared Function FindVisualChildByName(Of T As DependencyObject)(parent As DependencyObject, name As String, columnNameI As String) As T 
    Dim ColumnNameInput As String = columnNameI 
    For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(parent) - 1 
     Dim child = VisualTreeHelper.GetChild(parent, i) 
     Dim controlName As String = TryCast(child.GetValue(Control.NameProperty), String) 
     If TypeName(child) = "DataGridCellsPanel" Then 
      BooAfterItemsPresenter = True 
     End If 
     If BooAfterItemsPresenter = True AndAlso TypeName(child) = "DataGridColumnHeader" Then 
      Dim DGColHeader = CType(child, DataGridColumnHeader) 
      If DGColHeader.Content IsNot Nothing Then 
       ColumnName = DGColHeader.Content.ToString 
      Else 
       ColumnName = "" 
      End If 
     End If 
     If controlName = name AndAlso ColumnName = ColumnNameInput Then 
      Return TryCast(child, T) 
     Else 
      Dim result As T = FindVisualChildByName(Of T)(child, name, ColumnNameInput) 
      If result IsNot Nothing Then 
       Return result 
      End If 
     End If 
    Next 
    Return Nothing 
End Function 

,然後當你使用這個功能:

Public Sub hideImageLock() 
     Dim ImageLock = FindVisualChildByName(Of Image)(dataGrid, "ImageLock", "NEU2") 
     ImageLock.Visibility = Windows.Visibility.Collapsed 
End Sub 

我希望它可以幫助一些人!