2016-12-01 12 views
1

私はWPFを習得しようとしています。 私はコード内のプロパティからテキストボックスのテキストを見たいと思います。私はいくつかの関連する質問を見て、私は彼らの答えを試してみましたが、残念ながら私の必要性に合っていません。さらに、基本的なものから始まって上級レベルに進んでいく素敵なチュートリアルを教えてもらえればいいですか?私はmsdnのチュートリアルで探していますが、私はそれらが非常に複雑な(またはあまりにも多くのテキスト)を見つけるより複雑なこと。データバインドエラーはありませんが、バインドされた出力を見ることができませんでした。

MainWindow.xaml.cs

namespace WpfApplication1 
{  
    public partial class MainWindow : Window 
    { 
     public string Name { get; set; } 

     public MainWindow() 
     { 
      Name = "Dummy"; 
      InitializeComponent(); 
      DataContext = this; 


     } 
    } 
} 

MainWindow.xaml

<Window x:Class="WpfApplication1.MainWindow" 
      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:local="clr-namespace:WpfApplication1" 
      mc:Ignorable="d" 
      Title="MainWindow" Height="350" Width="525"> 
     <Grid> 
      <TextBox Text="{Binding Path=Name}"></TextBox> 
     </Grid> 
    </Window> 

答えて

1

プロパティNameは、基本クラスのName財産を隠し(およびVisual Studioはこれについて警告を表示します) 。新しいプロパティを設定していますが、XAMLのBindingは基本クラスのプロパティを使用しています。

異なるプロパティ名を選択:

public string MyName { get; set; } 

public MainWindow() 
{ 
    MyName = "Dummy"; 
    InitializeComponent(); 
    DataContext = this; 
} 

XAML:

public class MainWindowViewModel 
{ 
    public string Name { get; set; } 

    public MainWindowViewModel() 
    { 
     Name = "Dummy"; 
    } 

} 

そして、これまでの背後にあるコードを変更:

<TextBox Text="{Binding Path=MyName}" /> 
+0

次のステップは、もう1つの答えに示すように、ビューモデルクラスを使用することです。 – Clemens

+0

ありがとうございます!私はそれを受け入れる – Smallestearth

0

新しいクラスを作成するには、この問題を解決するには:

public MainWindow() 
    { 
     DataContext = new MainWindowViewModel(); 

     InitializeComponent(); 
    } 

それがうまくいくはずです。

MVVMを検索すると、YouTubeでチュートリアルを見つけることができます。

+0

はいこれも動作しますが、私は答えとして1つだけマークすることができ、あなたに投票するのに十分なポイントがありません。あなたの返信ありがとう! – Smallestearth

+0

いいえProplem :-)私はあなたを助けることができてうれしい – ascholz

関連する問題