Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Доступ к элементам usercontrol'a


Автор: spk57 4.7.2014, 14:47
Здравствуйте.
Есть главное окно программы MainWindow.xaml
Код
<mui:ModernWindow x:Class="AccessUserControl.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mui="http://firstfloorsoftware.com/ModernUI"
        Title="mui" IsTitleVisible="True"          
        ContentSource="/Pages/Page1.xaml" Width="600" Height="400">

    <mui:ModernWindow.MenuLinkGroups>
        <mui:LinkGroup DisplayName="Первая вкладка">
            <mui:LinkGroup.Links>
                <mui:Link Source="/Pages/Page1.xaml" />
            </mui:LinkGroup.Links>
        </mui:LinkGroup>
        <mui:LinkGroup DisplayName="Вторая вкладка" GroupName="settings">
            <mui:LinkGroup.Links>
                <mui:Link Source="/Pages/Page2.xaml" />
            </mui:LinkGroup.Links>
        </mui:LinkGroup>
    </mui:ModernWindow.MenuLinkGroups>
</mui:ModernWindow>


В нем отображается usercontrol Page1.xaml
Код
<UserControl x:Class="AccessUserControl.Pages.Page1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:mui="http://firstfloorsoftware.com/ModernUI"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid Style="{StaticResource ContentRoot}">
            <Grid>
            <Button x:Name="OpenChildrenWindow" Content="Открыть дочерние окно" HorizontalAlignment="Left" Margin="62,183,0,0" VerticalAlignment="Top" Width="151" Click="OpenChildrenWindow_Click"/>
            <TextBox x:Name="txtbox1" HorizontalAlignment="Left" Height="23" Margin="77,27,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
            <TextBox x:Name="txtbox2" HorizontalAlignment="Left" Height="23" Margin="77,82,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
        </Grid>
    </Grid>
</UserControl>


Из этой страницы открывается новое окно ChildrenWindow.xaml
Код
<controls:MetroWindow x:Name="ChildrenWindow1" x:Class="AccessUserControl.ChildrenWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
    Title="MainWindow" 
    Height="350" 
    Width="525">
    <Grid>
        <TextBox x:Name="ChildTxtBox1" HorizontalAlignment="Left" Height="23" Margin="209,63,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
        <TextBox x:Name="childTxtBox2" HorizontalAlignment="Left" Height="23" Margin="209,118,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" SpellCheck.IsEnabled="True"/>
        <Button x:Name="AcceptChanges" Content="Применить изменения" HorizontalAlignment="Left" Margin="194,178,0,0" VerticalAlignment="Top" Width="146" RenderTransformOrigin="0.12,0.693" Click="AcceptChanges_Click"/>

    </Grid>
</controls:MetroWindow>


Как из ChildrenWindow.xaml получить доступ к элементам (textbox'ам к примеру) Page1.xaml?

Автор: Ilya81 4.7.2014, 15:30
Рекомендую использовать http://ru.wikipedia.org/wiki/Model-View-ViewModel.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)