У меня вопрос о том, как я могу использовать помощник визуального дерева для получения объекта, который мне нужен. У меня есть пользовательский проверочные под названием DialogItemControll, что я называю из моей главной странице, как это:Помогите с использованием визуального дерева в Silverlight
DialogItemControll ivDialogWindow = new DialogItemControll()
ivDialogWindow.ivSave.Click += new RoutedEventHandler(ivSave_Click);
ivDialogWindow.Show();
А потом у меня есть метод ivSave_Click, который вызывается при нажатии на кнопку Сохранить на моем пользователя проверочные. Этот метод выглядит так:
void ivSave_Click(object sender, RoutedEventArgs e)
{
var button = sender as Button;
var firstStack = button.Parent as StackPanel;
var secondStack = firstStack.Parent as StackPanel;
TextBox te = secondStack.FindName("ivUserComment") as TextBox;}
Здесь вы можете увидеть мои попытки использовать родительский элемент get и т. Д. Не так красиво сделано. Так что я хочу, чтобы получить весь объект как:
var controll = ?? as DialogItemControll
Мои DialogItemControll выглядит следующим образом:
<C1:C1Window x:Class="DialogItemControll"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:C1="clr-namespace:C1.Silverlight;assembly=C1.Silverlight"
mc:Ignorable="d"
d:DesignHeight="418" d:DesignWidth="401">
<Grid x:Name="LayoutRoot" Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Margin="5,5,5,5">
<TextBlock Name="ivHelpComment" FontSize="18">test</TextBlock>
<TextBox Name="ivUserComment" BorderThickness="2,2,2,2" Height="170"></TextBox>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" >
<Button Name="ivSave" HorizontalAlignment="Right" Height="22" Width="70" Margin="0,10,20,0" Click="ivSave_Click">Spara</Button>
<Button Name="ivCancel" HorizontalAlignment="Right" Height="22" Width="70" Margin="0,10,20,0" Click="ivCancel_Click">Avbryt</Button>
</StackPanel>
</StackPanel>
</Grid>
окно C1 такое же, как пользовательский элемент управления, его просто третья сторона контроль. Пожалуйста, помогите мне в том, как я должен использовать хелпер дерева, чтобы получить весь объект.
Благодаря
Я могу получить его, написав: var button = sender as Button; var firstStack = button.Parent как StackPanel; var secondStack = firstStack.Parent как StackPanel; var thirdStack = secondStack.Parent as Grid; var lastItem = thirdStack.Parent как DialogItemControll; Но я ищу лучший способ сделать это. – Fore