0

このような質問をしたのは私が初めてではないことは間違いありません。問題は、これらの大部分の場合です。回答は、wpf に関しては MVVM への参照を置き、それがどのように行われたかを実際に説明したり、少なくとも適用可能な例を示したりしません。残りは、それらの人々の特定の状況に固有のものです。

メイン ウィンドウにテキスト ボックスがあり、ページにもテキスト ボックスがあるとします。メイン ウィンドウのテキスト ボックスのテキストを、子ウィンドウのテキスト ボックスに渡す必要があります。それはどのように行われますか?

winforms で使用されている方法は、ウィンドウからウィンドウへの操作でしか機能しないようです。ただし、ページ宣言に値を入力して実行するたびに例外がスローされます。

ページはリンクを介して開かれます。使用する場合は、wpf の最新の ui テーマを使用しています: http://mui.codeplex.com

メイン ウィンドウ xaml

  <mui:ModernWindow x:Class="Masca.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="Masca Database Admin" Height="800" Width="1280" IsTitleVisible="True"
LogoData="F1 M 24.9015,43.0378L 25.0963,43.4298C 26.1685,49.5853 31.5377,54.2651 38,54.2651C 44.4623,54.2651 49.8315,49.5854 50.9037,43.4299L 51.0985,43.0379C 51.0985,40.7643 52.6921,39.2955 54.9656,39.2955C 56.9428,39.2955 58.1863,41.1792 58.5833,43.0379C 57.6384,52.7654 47.9756,61.75 38,61.75C 28.0244,61.75 18.3616,52.7654 17.4167,43.0378C 17.8137,41.1792 19.0572,39.2954 21.0344,39.2954C 23.3079,39.2954 24.9015,40.7643 24.9015,43.0378 Z M 26.7727,20.5833C 29.8731,20.5833 32.3864,23.0966 32.3864,26.197C 32.3864,29.2973 29.8731,31.8106 26.7727,31.8106C 23.6724,31.8106 21.1591,29.2973 21.1591,26.197C 21.1591,23.0966 23.6724,20.5833 26.7727,20.5833 Z M 49.2273,20.5833C 52.3276,20.5833 54.8409,23.0966 54.8409,26.197C 54.8409,29.2973 52.3276,31.8106 49.2273,31.8106C 46.127,31.8106 43.6136,29.2973 43.6136,26.197C 43.6136,23.0966 46.127,20.5833 49.2273,20.5833 Z"          
ContentSource="/Pages/Home.xaml">

子ウィンドウの xaml

  <UserControl x:Class="Masca.Mail.Configuration"
     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="800" d:DesignWidth="1280">

<TextBox x:Name="alias" Margin="186,64,0,0" Height="18" VerticalAlignment="Top" HorizontalAlignment="Left" Width="211" FontSize="11" ></TextBox>

これを行っているのは、どのユーザーがログインしているかをプログラムが認識し、誰がデータベースにどのような変更を加えているかをログに記録できるようにするためです。

4

1 に答える 1

0

How I will do that is to set the DataContext property of second page to the first page. Then I can access the properties of first page in second page via Binding. For this its better to use MVVM in your application and then define the property in ViewModel of Page 1 and then define DataContext in page 2. Now you can access that property in page 2.

于 2013-10-27T12:59:26.750 に答える