2012-05-05 10 views
0

TextBoxを文字列にバインドする際に問題があります(StringBuilderの場合と同じ問題)。ここで Windows Phone例外リストボックスのTextBoxアイテムのデータバインド

はXAMLです:

<ListBox x:Name="MyList" ItemsSource="{Binding ListOfBullets, Mode=TwoWay, Converter=StaticResourcedebugConverter}}"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
          <local:TaskStepControl Text="{Binding Mode=TwoWay}" AddHnadler="{Binding DelegateForHandlingAddTaskStep, ElementName=uc}"></local:TaskStepControl>       
        </DataTemplate> 
       </ListBox.ItemTemplate> 

やリストボックスの項目は次のとおりです。

public ObservableCollection<StringBuilder> ListOfBullets{get{....} set{....}} 

私も試してみました:

public ObservableCollection<string> ListOfBullets{get{....} set{....}} 

私が実行している場合私は、イオン "パラメータが正しくありません。あなたが持つことができない

私が間違って何をやっている

答えて

1

MSDN says; " 私はモード=双方向を削除した場合、それはテキストボックスを編集すると予想しかしとして働くListOfBulletsにテキストバインドされたオブジェクトを変更しないでください?双方向の空のプロパティパスとの結合。

私はバインディングエンジンが唯一の特定のプロパティに、いないオブジェクト自体に結合する双方向を行うことができますね。

私の考えになっていない理由について許可:

TwoWayバインディングの 'writing'部分は、データソースオブジェクトに指定された値を設定するだけであると考えることができます。したがって、このマークアップText={Binding Name, Mode=TwoWay}は、テキスト更新のC#コード:dataSource.Name = textBox.Textと似ています(もちろん、バインディングワークフロー全体は洗練されていますが、背後には他のことがありますが、今は関係ありません)。

サンプルはlistItem = textBox.Textのようなものを実行しようとしますが、ListOfBulletsの実際の項目は更新されません。私はバインディングの仕組みを劇的に単純化して、何が起こっているのかを知ることができます。

あなたは何を行うことができます。

は、あなたの文字列値が含まれていると<local:TaskStepControl Text={Binding Value, Mode=TwoWay} />

+0

public ObservableCollection<Model> ListOfBullets {get; set;}

に結合するラッパーモデルクラスを作成します。ありがとうございました!!!もし私があなたに+1を与えなかったら+1 +1 –

+0

あなたは歓迎です、私はそれが助けてうれしいです。 –

関連する問題