0

以下のウィンドウでは、Existing Reports コンボが reportObjects の観察可能なコレクションにバインドされています。currentReportコンボの SelectedValue プロパティ OneWay にバインドされた reportObject プロパティがあります。ただし、XAML でバインドされている場合は機能しません。

SelectedValue="{Binding currentReport, Mode=OneWay}"

undo()TwoWay バインドは正常に機能しますが、reportObject クラスにメソッドを記述しない限り、そのようにはできません。編集のために、currentReport のプロパティをさまざまなテキスト ボックスにバインドしています。ソースが変更されないように OneWay をバインドしたい。currentReport のプロパティはすべて、対応するテキスト ボックスにバインドされた TwoWay であるため、SQL [保存] でテーブルを更新すると、そのオブジェクトからプルされ、データが最新です。

<TextBox Text="{Binding currentReport.reportName, Mode=TwoWay}"

currentReport からテキストボックスにバインドされたすべてのプロパティも正常に機能します。唯一の問題は、SelectedValue から currentReport オブジェクトへの OneWay バインディングです。これを機能させる方法はありますか?バグがあるのを見ましたが、私が見た投稿は2009年でした。

ここに画像の説明を入力

黄色でごめんなさい。私の考えではありません。=)

編集: 念のため、この XAML を追加しました。

<ComboBox ItemsSource="{Binding reportsCollection}" SelectionChanged="cboReports_SelectionChanged"
                                  DisplayMemberPath="displayName"
                                  SelectedValue="{Binding currentReport, Mode=TwoWay}"
                                  x:Name="cboReports" Width="342" Height="40" VerticalAlignment="Center"/>  
4

1 に答える 1

2

値を変更する必要があることを忘れてください-それは別の問題です-データ設計を確認する必要があります。UIの問題の質問から始めます。ユーザーがコンボボックスからアイテムを選択できるようにする場合は、双方向のバインドが必要です。あなたの最初の質問はSelectedValue="{Binding currentReport, Mode=OneWay}"なぜ失敗するのですか?

于 2011-09-23T22:28:06.967 に答える