0

私は WPF、C#、および xaml を初めて使用します。私の知識は貧弱ですが、成長していると言えます。

私は非常に単純なアプリケーションを持っています。私が達成しようとしていることは次のとおりです。

テキスト ボックスがあり、アプリケーションのユーザーに電子メール アドレスを入力するように求めています。その変数をどこかに保存して、後で画面に書き込めるようにしたいと思います。1. 電子メール アドレスを取得します (ユーザーは [次へ] ボタンをクリックします)。

Blend with SketchFlow を使用しています。変数を格納できるシングルトン クラスを作成しました。

namespace Mysillyapplication
{
public class ApplicationParameters
{
    private static ApplicationParameters _instance;
    private string _emailAddress;

    public static ApplicationParameters Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new ApplicationParameters();
            }
            return _instance;
        }

    }

    public string EmailAddress
    {
        get { return _emailAddress; }
        set
        {
            _emailAddress = value;
        }
    }
}

メールアドレスを取得するページのコード:

namespace Mysillyapplication
{
/// <summary>
/// Interaction logic for BasicParameters.xaml
/// </summary>
public partial class BasicParameters : UserControl
{
    public BasicParameters()
    {
        this.InitializeComponent();
    }

    public string EmailAddress
    {
        get
        {
            return ApplicationParameters.Instance.EmailAddress;
        }
        set
        {
            ApplicationParameters.Instance.EmailAddress = value;
        }
 }
     }
   }

私のxamlには次の行があります:

<TextBox x:Name="email" HorizontalAlignment="Left" Height="23" Margin="32,65,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="291"/>

<i:EventTrigger EventName="Click">
                <ei:ChangePropertyAction  TargetName="MySillyapplication_BasicParameters_Name" PropertyName="EmailAddress" Value="{Binding Text, ElementName=email}" />
                <pi:NavigateToScreenAction TargetScreen="DBSyncScreens.BeginSync"/>
            </i:EventTrigger>

そして最後に、別のページに表示したい: そのページの CS には、次の行があります。

public string EmailAddress
    {
        get
        {
            return ApplicationParameters.Instance.EmailAddress;
        }
        set
        {
            ApplicationParameters.Instance.EmailAddress = value;
        }
    }

XAML では次のようになります。

<TextBlock HorizontalAlignment="Left" Height="25" Margin="10,35,0,0" Style="{DynamicResource BasicTextBlock-Sketch}" 
               VerticalAlignment="Top" Width="605" >
        <Run Text="A log of the sync will be sent to "/>
        <Run Text="{Binding EmailAddress, Mode=TwoWay}"/>
        <Run Text=". Click Next to begin the sync process."/>
    </TextBlock>

は間違っており、機能しません。

私はこれを間違った方法でやっている可能性があります。そのユーザー変数の電子メールアドレスを簡単に扱いやすくする方法について、誰でもアイデアを持っています。私が達成しようとしていることは非常に簡単だと感じていますが、それには非常に苦労しています.

変数を取得して保存し、他のページでアクセスします。

4

3 に答える 3

0

これはDataContext、2 番目のページに を設定していないため、 が見つからないためEmailAddressです。

ページ コンストラクターに以下を追加してみてください。

DataContext = this;
于 2013-03-22T15:58:51.783 に答える
0

コンストラクターで、BasicParameters次のコードを追加します。

public BasicParameters()
{
    this.InitializeComponent();
    this.DataContext = ApplicationParameters.Instance;
}

チッ!

于 2013-03-22T16:03:33.127 に答える