Столкнулась с такой проблемой: Принимаю callback с сайта и обрабатываю его
public partial class MainWindow : Window
{
private readonly CallbackObjectForJs _callBackObjectForJs;
private readonly CallbackObjectSaveSettings _callbackObjectSaveSettings;
private static XmlHelper _xmlhelper;
public MainWindow()
{
InitializeComponent();
_xmlhelper = new XmlHelper();
var hostInterface = new HostInterface(this);
Browser.RegisterAsyncJsObject("hostInterface", hostInterface);
Browser.ConsoleMessage += (s, e) =>
{
Debug.WriteLine($"BROWSERCONSOLE: {e.Source}:{e.Line} - {e.Message}");
};
_callBackObjectForJs = new CallbackObjectForJs();
_callbackObjectSaveSettings = new CallbackObjectSaveSettings();
Browser.RegisterAsyncJsObject("callbackObj", _callBackObjectForJs);
Browser.RegisterAsyncJsObject("callbackObj", _callbackObjectSaveSettings);
}
public class CallbackObjectForJs
{
public void showMessage(string msg)
{
MessageBox.Show(msg);
}
}
public class CallbackObjectSaveSettings
{
public void showMessage(string msg)
{
MessageBox.Show(msg);
}
public void getAuthUser(string login, string password)
{
_xmlhelper.UpdateSettingValue("user_login", login);
_xmlhelper.UpdateSettingValue("user_password", UserDataProtected.Shifrovka(password, "wsprod"));
userBarGrid.Visibility = true; // ОШИБКА Требуется указать ссылку на объект
}
}
}
После чего хочу запустить метод loadUserData(), но getAuthUser ругается на не статичный метод (указывала public static void loadUserData, начинает ругаться уже внутренний код). Подскажите, пожалуйста, как это решить? Спасибо!
Если не вдаваться в подробности как лучше писать код и зачем вообще такое делать, а просто сконцентрироваться на том, чтобы решить ту проблему, о которой вы спрашиваете, то вы можете решть её, пробросив экземпляр вашего окна в ваши коллбеки
public class MainWindow
{
......
_callbackObjectSaveSettings = new CallbackObjectSaveSettings(this);
......
}
public class CallbackObjectSaveSettings
{
private MainWindow _mainWindow;
public CallbackObjectSaveSettings(MainWindow mainWindow)
{
_mainWindow = mainWindow;
}
public void getAuthUser(string login, string password)
{
......
......
_mainWindow.Dispatcher.Invoke(()=> _mainWindow.userBarGrid.Visibility = true);
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите пожалуйста, как заставить текст с других столбцов дублироваться на следующей странице, если хотя бы в 1 столбце текст не помещается...
Ситуация в следующемВ StartUp классе, для изоляции слоев приложения регистрирую модули
Есть строка чисел разделенных точкой с запятой:
Почему скрипт стает "только для чтения" в Visual Studio C# после нажатия "Подключить к Unity"Как я могу его потом редактировать?