を更新しない:DataGridComboBoxColumnは、私がこのコラムを持っているのItemsSource
<DataGridComboBoxColumn Header="Master" SelectedValueBinding="{Binding MasterId}" SelectedValuePath="Id" DisplayMemberPath="Name" ItemsSource="{Binding Data.Masters, Source={StaticResource proxy}}" />
をViewModelに上のプロパティは次のとおりです。
public ObservableCollection<ReaderViewModel> Masters { get; set; }
DataGridのDataSourceが自己関係のマスター・スレーブを持っており、私がコレクションを更新します挿入、更新、削除は行われますが、コンボボックスは初期値を保持し、更新自体は行いません。
私は間違っていますか?
プロパティの変更については、Fodyアドオンを使用しています。 問題を理解するためのコードがさらに必要な場合は、もっと分かち合う準備が整いました。
EDIT 1:
BindingProxyクラス:
public class BindingProxy : Freezable
{
#region Overrides of Freezable
protected override Freezable CreateInstanceCore()
{
return new BindingProxy();
}
#endregion
public object Data
{
get
{
return GetValue(DataProperty);
}
set
{
SetValue(DataProperty, value);
}
}
public static readonly DependencyProperty DataProperty = DependencyProperty.Register("Data", typeof(object), typeof(BindingProxy), new UIPropertyMetadata(null));
}
このクラスは、私はそれを見つけたグーグル、上で見つけることができます。
EDIT 2:BindingProxyが使用されているどのように
<DataGrid.Resources>
<classes:BindingProxy x:Key="proxy" Data="{Binding}" />
</DataGrid.Resources>
。
:
UPDATE:
XAMLを動作しません)、またはコンボに値を設定すると、ビューモデルは変更に影響しません。 – CiccioRocca
ComboBox ItemsソースはDataGridソースのサブセットですが、サブセット内にあるDataGridアイテム(作成、編集、または削除)を編集すると表示されません。 ComboBoxバインドは正常に動作します。 –
これで、コンボボックスのItemSourceに何かが変更されたときに通知されません。モードを「OneWay」に設定しようとしましたか? – CiccioRocca