0
코드 뒤에서 ContentControl 내부에서 내 Grid (listBoxGrid)에 액세스하는 데 매우 어려움을 겪고 있습니다. 어떤 도움이나 포인터가 좋을 것입니다!WPF AccessControl 내부의 액세스 컨트롤
감사 라이언
<Style x:Key="ccTemplate" TargetType="{x:Type ContentControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContentControl}">
<Grid x:Name="listBoxGrid" TextOptions.TextFormattingMode="Display">
<Grid.RowDefinitions>
<RowDefinition Height="200*"/>
<RowDefinition Height="60" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80" />
<ColumnDefinition Width="80" />
<ColumnDefinition Width="80" />
<ColumnDefinition Width="80" />
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid Grid.ColumnSpan="6" >
<ContentPresenter />
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="{x:Type control:ListBoxControl}" TargetType="{x:Type control:ListBoxControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<ContentControl Style="{StaticResource ccTemplate}" x:Name="cc">
<telerikNavigation:RadTreeView
Name="mainList"
ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ItemsSource}"
ItemTemplate="{DynamicResource MainDataTemplate}"
ItemContainerStyle="{DynamicResource MainStyle}"
MinWidth="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=MinWidth}"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
BorderBrush="#FF00569F"
Background="{DynamicResource ListItemBackground}"
BorderThickness="1"
SelectionMode="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectionMode, FallbackValue=Single}"
IsDragDropEnabled="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsDragDropEnabled, FallbackValue=False}"
IsDropPreviewLineEnabled="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsDropPreviewLineEnabled, FallbackValue=True}"
AllowDrop="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=AllowDrop, FallbackValue=True}"
>
</telerikNavigation:RadTreeView>
</ContentControl>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
나는
Grid myGrid = (Grid)Template.FindName("listBoxGrid", this);
을 시도하지만 그것은 작동하지 않습니다.
OnApplyTemplate 재정의에서 Grid myGrid = GetTemplateChild ("listBoxGrid")를 Grid로 시도했습니다. 여전히 myGrid는 null입니다. – Ryan
사실 내가 쓴 것은 WPF에서만 Silverlight에만 적용된다는 것을 알았습니다. Template.FindName()을 사용할 수 있어야하므로 문제가 다른 곳에서 발생합니다. ContentControl의 확장 클래스에서 메서드를 호출하려고 시도 했습니까? – dain
내 작은 예를보고 내 문제를 확인하십시오. 원한다면 :) http://www.vbninja.com/XAMLGridError.zip – Ryan