Я занимаюсь разработкой раскрывающегося списка учетных записей, который будет использоваться в моем приложении.В раскрывающемся списке будет выполнен вызов службы и получен список доступных учетных записей, а в раскрывающемся списке будет отображено свойство «Выбранная учетная запись» для выбранного элемента.SelectedAccount будет DependencyProperty, так как он должен быть связан с потребителями элемента управления AccountDropdown, и он должен быть двухсторонним, чтобы связать его, чтобы он отражал существующий SelectedAccount., он содержит ComboBox:
<ComboBox SelectedItem="{Binding Path=SelectedAccount, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"...
Выбранный элемент поля со списком привязан к свойству, которое зарегистрировано как
DependencyProperty.Register("SelectedAccount", typeof(IAccount), typeof(AccountDropdown),
new UIPropertyMetadata(null));
... и обычному свойству:
#region SelectedAccount
/// <summary>
/// Selected account
/// </summary>
public IAccount SelectedAccount
{
get { return (IAccount)GetValue(SelectedAccountProperty); }
set { SetValue(SelectedAccountProperty, value); }
}
#endregion SelectedAccount
Свойства определены в файле code-behind ... и контекст данных установлен на "this" ... поэтому привязка установлена правильно.
Когда я используюДля этого элемента управления мне нужно привязать SelectedAccount к свойству ViewModel для другого представления, например:
<Controls:AccountDropdown SelectedAccount="{Binding Path=SelectedAccount, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
Когда я запускаю приведенный выше код и меняю выбор в раскрывающемся списке, я получаю СистемуИсключение .StackOverflow.Я даже не могу его отладить, исключение выдается из Windows.Base.dll.
Я боролся с этим уже целый день ... любая помощь будет признательна.
** Примечание: ** Я написал несколько элементов управления WPF со свойствами зависимости, и они отлично работают, но когда я их использую, я предоставляю значение явно в файле .asmx.В этом случае я снова связываюсь, когда использую свойство.Я предполагаю, что для раскрытия привязываемого свойства может потребоваться дополнительная хитрость.