2

プロジェクトでバインディングに問題があります。デフォルトで2列を定義するデータグリッドがあります。ItemsSource はリスト (ListeGrilleTarifaire) にバインドされ、列のコンテンツは最初のリストに含まれる 2 番目のリスト (ListeTranche) の要素にバインドされます。

<techuc:DataGridM Name="dg_HeaderTranche" AutoGenerateColumns="False" ItemsSource="{Binding ListeGrilleTarifaire}" CanUserAddRows="False" CanUserDeleteRows="False" Visibility="{Binding accesGrilleMultiDepartement}" Height="42"  Margin="440,0,0,0" VerticalAlignment="Top">
<DataGrid.Columns>                                                   
    <DataGridTextColumn Header="{x:Static trad:Langues.lblTranche1}" Binding="{Binding ListeTranche[0],Mode=TwoWay}" Width="80"/>
    <DataGridTextColumn Header="{x:Static trad:Langues.lblTranche2}" Binding="{Binding ListeTranche[1],Mode=TwoWay}" Width="80"/>
</DataGrid.Columns>

ボタンで列を追加し、新しい列を2番目のリストにバインドする可能性が欲しいです。

ボタンをクリックすると、2 番目のリストに要素が追加され、followinf コードが実行されます。

DataGridTextColumn textColumnTranche = new DataGridTextColumn();
textColumnTranche.Header = "Tranche X";
textColumnTranche.Binding = new Binding("ListeTranche[3]");
dg_HeaderTranche.Columns.Add(textColumnTranche);

新しい列が作成され、入力できますが、データベースにデータを保存すると、値はまだ 0 のままです。バインディング モードを TwoWay として構成していないためだと思いますが、それを行う方法がわかりませんコードビハインド。

私のリストは ViewModel で定義され、使用されます。

4

1 に答える 1

1

BindingMode = TwoWay を設定する方法:

textColumnTranche.Binding = new Binding("ListeTranche[3]") { Mode = BindingMode.TwoWay };
于 2012-10-17T12:12:33.523 に答える