XAML призывает установить на предшествующее связывание со значением нового связыванияXAML звонит получить с до связывания
стека вызовов
Gabe2a.exe!Gabe2a.GabeLib.SearchItem.ParenRight1.set(bool value) Line 24333 C#
[External Code]
Gabe2a.exe!Gabe2a.PageSearch.NotifyPropertyChanged(string info) Line 34 C#
searchItemCur правильно
protected void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
Debug.WriteLine("PageSearch NotifyPropertyChanged " + info);
if (info == "SearchItemCur" && searchItemCur != null)
Debug.WriteLine(" searchItemCur " + searchItemCur.FieldDef.DispName);
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
Ниже вызывается в неправильном объекте
Определенное поле FieldDef.DispName ошибочно
Он вызывается на th е старое связывание с новым значением
public Boolean ParenRight3
{
get { return parenRight3; }
set
{
if (parenRight3 == value) return;
Debug.WriteLine("ParenRight3 " + value.ToString() + " " + FieldDef.DispName);
if (value && (AndOr == enumAndOr.Except || AndOr == enumAndOr.NotYetDefined)) return;
parenRight3 = value;
Я проследил его вниз
Он разбивает на [Код внешнего], который я уверен, это XAML
Эта линия звонит старый связыванию со значением нового связывание
Присвоить значение нового связывания с обязательными результатами в неверном значении
Если старая и новая оба имеют одинаковое значение, то нет никакого вызова, чтобы получить на всех
Gabe2a.exe!Gabe2a.GabeLib.SearchItem.ParenRight1.set(bool value) Line 24333 C#
[External Code]
Gabe2a.exe!Gabe2a.PageSearch.NotifyPropertyChanged(string info) Line 34 C#
Это связывание
<RadioButton Style="{StaticResource RadioButton03}" FontSize="14" Content=")"
IsChecked="{Binding ElementName=_this, Path=SearchItemCur.ParenRight1}"/>
Существует отдельный DataContext
Радиокнопки и привязки могут взаимодействовать смешными способами из-за того, что измененный IsChecked на переключателе также неявно изменяет его на других переключателях в той же группе. Когда это изменение происходит в результате изменения привязки, вы можете завершить работу в ситуациях, когда IsChecked изменяется из-за привязки, которая меняет IsChecked на другом переключателе, который затем модифицирует «старый» объект, поскольку изменение привязки hasn ' t полностью размножается. –
@DanBryant Странно, что другой RadioButton работает. И он всегда отправляет значение новой привязки, даже если значение истинно. Но что-то обдумать. – Paparazzi
@ DanBryant Nice catch. Я изменил их на CheckBoxes, и проблема, похоже, исчезла. Человек я боролся с этим в течение 4 часов. – Paparazzi