0

なぜこれがうまくいかないのか誰か教えてもらえますか?

<Grid x:Name="myGrid">
    <Grid.ColumnDefinitions>
      <ColumnDefinition />
      <ColumnDefinition />
    </Grid.ColumnDefinitions>
      <TextBox VerticalAlignment="Center" Grid.Column="0">Gangnam</TextBox>
      <TextBox VerticalAlignment="Center" Text="{Binding}" Grid.Column="1" />
</Grid>

コード ビハインドでは、datacontextforを設定しましたmyGriddatatemplateを扱えるも作る予定ですvisualisation

今のところ、に myのtextboxが含まれていることを期待していますが、代わりに解析例外があります (「双方向バインディングにはパスまたは. が必要です」)。typenameclassxmlXPath

これは私datacontextがコントロールに設定する方法です:

public LeftColumn()
    {
      InitializeComponent();

      LeftColumnData dataObjectLeft = new LeftColumnData();
      myGrid.DataContext = dataObjectLeft;
    }
4

1 に答える 1

0

DataContext は型LeftColumnDataであり、TextBox は既定で双方向バインディングを使用するため、ランタイムがStringとデータ型の間の変換を把握することは不可能です。

バインディングをOneWay次 のように設定してみてください。

<TextBox VerticalAlignment="Center" Text="{Binding, Mode=OneWay}" Grid.Column="1" />

またはIValueConverter、変換を処理する を実装します。

<TextBox VerticalAlignment="Center" Text="{Binding, Converter={My:Converter}}" Grid.Column="1" />
于 2013-01-10T15:17:48.853 に答える