2016-05-11 16 views
0

ビジュアルスタジオでwpfプロジェクトをセットアップしました。私はMVPクラスを作成しようとしていますが、私が作成したこれらのクラスのxamlプロパティにはアクセスできません(例えばtextBox1.textまたはlabel.Content)wpfビジュアルスタジオ設定の理解に問題があります

私が与えたファイルはMainWindow.xaml.cs、MainWindow .xamlとその他のファイル。 MainWindow.xaml.csのxamlプロパティにアクセスできます。しかし私のview.csでそれは'textBox' does not exist in the current contentを示します。あなたのXAMLファイル名にあなたがコントロールを与える必要が

namespace myApp 
{ 
public interface IView 
{ 
    void clearInput(); 
} 

public class PView: IView 
{ 
    public void clearInput() 
    { 
     textBox1.Text = ""; //error 
     textBox2.Text = ""; 
     textBox3.Text = ""; 
    } 
} 
+1

私はあなたがあなたが何をする必要があるのか​​を理解するために、追加の作業と読書を行います(デフォルトでは、XAMLとcsファイルはMVP、MVC、MVVM、またはその他のものには設定されません)。これがどれほど古くなったかを知ることができないのかどうかはわかりません。[Presentation InteroperabilityとTestabilityの向上を可能にするModel-View-Presenter(MVP)デザインパターンの使用](https://blogs.msdn.microsoft.com/jowardel/2008/ 09/09/model-view-presenter-mvp-design-pattern-to-enable-presentational-interoperability-and-tested-testingability/ – crashmstr

答えて

1

(テキストボックスなど):

namespace myApp 
{ 
public partial class MainWindow : Window 
{ 
    private Model model; 
    public MainWindow() 
    { 
     InitializeComponent(); 
     //initialize the storage 
     model= new Model(); 
    } 

    /// <summary> 
    /// clear the textbox for user input 
    /// </summary> 
    private void clearInput() 
    { 
     textBox1.Text = ""; //these works fine 
     textBox2.Text = ""; 
     textBox3.Text = ""; 
    } 

[...] 
} 

view.cs:余分な詳細と情報

MainWIndow.xaml.csに感謝この

<TextBlock Name="textblock1" ..... 

のように次に、あなたのコードファイルにあなたはtextblock1

にアクセスすることができます

EDIT

しかし、これらのコントロールはオールウェイズプライベートなので、他のクラスからは見えません。

public string TextBlockText 
{ 
    get { return textblock1.Text; } 
} 

そして、あなたが使用することができ、あなたの他のクラス別

EDIT2

に、あなたはこれらのコントロールを行うことができます:あなたはこのような何かをしようとするために必要なデータを公開するために、このような一般公開

<TextBox x:Name="textBox1" x:FieldModifier="public" /> 
+0

これは私がメインウィンドウでそれらにアクセスできる理由です.xaml.cs。しかし、私が作成したview.csでそれらにアクセスすることはできません – user308553

+0

編集を参照してください - –

+0

の後にあなたが何であるかと思うので、私はMainWindow.xaml.csでこれらのメソッドを作成して、それは乱雑に思えます。たぶん私はあなたの言葉を正しく言いませんでした、私は編集をしました、あなたは見てみることができますか?ありがとう – user308553

関連する問題