У меня есть ObjectDataProvider
в моем XAML, который ссылается на метод в моем Window
классе. То есть у меня NewForm.xaml.cs
с классом NewForm
, а ObjectDataProvider
в NewForm.xaml
ссылается на метод в NewForm
. В настоящее время со следующим XAML я получаю ошибку переполнения стека, потому что конструктор NewForm
продолжает вызываться снова и снова:
<Window x:Class="MyNamespace.NewForm" ...>
<Window.Resources>
<ObjectDataProvider x:Key="getTeamName"
ObjectType="{x:Type local:NewForm}"
MethodName="GetTeamName">
<ObjectDataProvider.MethodParameters>
<sys:Int32>-1</sys:Int32>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
</Window>
Я предполагаю, что это потому, что ObjectType
установлен на NewForm
, поэтому он загружает NewForm
для загрузки моего приложения, но затем ему нужно создать новый экземпляр NewForm
для вызова GetTeamName
, но конструктор вызывает InitializeComponent
, который создает новый NewForm
, который должен создать новый NewForm
для вызова GetTeamName
... Фактически каждый раз происходит сбой Visual Studio 2010.
В любом случае, я спрашиваю, нужно ли мне определять методы, которые мой XAML вызывает через ObjectDataProvider
s в каком-то другом классе? Или я могу как-то использовать ObjectDataProvider
с методом, определенным в классе моего XAML? Или для вызова метода в моем классе XAML, должен ли я использовать какой-то другой XAML, кроме ObjectDataProvider
? Не похоже, что я могу поместить свой метод C # в другой класс, поскольку он использует TryFindResource
для получения XmlDataProvider
из моего XAML.