Если вы просто пытаетесь адаптировать подобный конструктор к прежней реализации вашего CustomWebApplicationFactory<TStartup>
класса
_client = new CustomWebApplicationFactory<Startup>(new SeedDataClass()).CreateClient();
, то ваш новый конструктор будет выглядеть так:
public class CustomWebApplicationFactory<TStartup, TContext> : WebApplicationFactory<TStartup>
where TStartup : class
where TContext : DbContext
{
private readonly SeedDataClass _seed;
public CustomWebApplicationFactory(SeedDataClass seed)
{
if (seed == null) throw new ArgumentNullException(nameof(seed));
_seed = seed;
}
}
а затем обновить ваш вызов конструктора, как показано ниже
new CustomWebApplicationFactory<Startup, YourDbContext>(new SeedDataClass()).CreateClient();
Для объекта 1 и 2, лучший способ получить доступ к этим входным событиям состоит в том, чтобы создать пользовательский TextBox, происходящий из созданного в TextBox. Затем можно переопределить OnKeyDown и OnMouseLeftButton вниз. Оттуда можно или назвать необходимый код или запустить новое событие. например:
public class MyTextBox : TextBox
{
public event MouseButtonEventHandler MySpecialMouseLeftButtonDown;
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
if (MySpecialMouseLeftButtonDown != null)
{
MySpecialMouseLeftButtonDown(this, e);
}
base.OnMouseLeftButtonDown(e);
}
}
Так же с OnKeyDown.
Я более знаком с Silverlight, чем полный WPF. considier мои ответы соответственно.
Для номера 2. Для многих ключей я проверяю KeyUp и KeyDown. Я использую KeyDown при попытке наблюдать все время, когда ключ удерживается и KeyUp, когда он использовался только однажды. Необходимо знать, что это было для игры без отдельного текстового поля.
Для объекта 4, можно связать и поле списка width и текстовое поле width к свойству статического ресурса так, чтобы это действовало как маршрутизатор для привязки. Вы могли также использовать преобразователь значения, который Вы инициализируете со ссылкой на поле списка, затем используете преобразователь для своего текстового поля width.
Для объекта 3, Вы могли использовать аналогичный подход.