2012-05-04 14 views
0
<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <TextBox Name="myTxt" Text="{Binding}" /> 
    </Grid> 
</Window> 

namespace WpfApplication1 
{ 

    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 

      InitializeComponent(); 
      DataContext = "fdfsfds"; 
     } 
    } 
} 

なぜこのコードが機能しないのでしょうか?例外をスローします。 textBoxをバインドするにはどうすればよいですか?WPFのDataContextで例外がスローされる

答えて

3

TextBox.TextプロパティのデフォルトBindingは - TwoWay

である "双方向結合パスまたはXPathを必要とします。"

だから、あなたはOneWayBindingを使用することができます。

<Grid> 
    <TextBox Name="myTxt" Text="{Binding Mode=OneWay}" /> 
</Grid> 
+0

を!正直言って私はそれを知らなかった。 TextBoxのtwoWayバインディングはデフォルトですか?またはすべてのコントロールのために? – Alexandre

+0

私はmsdnがよく知っていると思う:) 'TwoWay'は' TextBox.Text'プロパティのデフォルトであり、コントロールのためのものではありません。私は答えを編集しました。 – stukselbax

1

あなたはまだあなたがこのコードを使用することができますバインディングTwoWayをしたい場合は:確かに

<TextBox Name="myTxt" Text="{Binding Path=DataContext, RelativeSource={RelativeSource Self}}" /> 
関連する問題