Скрытие окна MVVM

Вам нужно передать весь хеш в вызов .update_attributes.

Предпочтительно вы поместите school_id внутри user, чтобы он выглядел как

# params[:user] = { school_id: 1 }
@user.update_attributes(params[:user])

Или вы могли бы вручную ввести идентификатор школы

@user.update_attributes(school_id: params[:school_id])

Или, еще лучше, подтвердите связь

@user.school = School.find(params[:school_id]

Путь, который вы хотите, -

user_add_school_path(@user, school_id: 1)
-2
задан Hackawar 13 July 2018 в 08:04
поделиться

3 ответа

Вы можете записать InverseBooleanToVisibilityConverter.

-1
ответ дан Michał Turczyn 17 August 2018 в 13:23
поделиться

Измените свой XAML на этот

GlowBrush="{DynamicResource AccentColorBrush}"                   
WindowStartupLocation="CenterScreen" >
<Window.Resources>
     <!--YOUR CONVERTER -->
</Window.Resources>
<Window.Visibility>
    <Binding Path="WindowVisible" Converter="{StaticResource BooleanToVisibilityConverter}" />
</Window.Visibility>

Если все еще не работает, поместите контрольную точку на геттер WindowVisible и посмотрите, пытается ли конвертер его получить.

I просто попробовал это, и это сработало, поэтому дайте мне знать, если это не для вас

0
ответ дан Pancake 17 August 2018 в 13:23
поделиться
  • 1
    Почему это сработало для вас? Это все еще не для меня. Я установил точку останова, но я, честно говоря, не знаю, что вы подразумеваете под «смотри, пытается ли конвертер его получить». – Hackawar 14 July 2018 в 17:26
  • 2
    @Hackawar Я сделал именно то, что вы разместили. 2 Windows, 1 открывает другой и становится «Collapsed». как ты это сделал, и это сработало. Пробовал ли мой код? Когда вы помещаете конвертер в свойство, конвертер вызывается с этим свойством и возвращает преобразованное значение, поэтому, если вы поместите контрольную точку в свой WindowVisible, вы увидите, будет ли ее вызываться. Более того, когда вы помещаете свойство в свой вид, способ, которым он получает значение, вызывает функцию getter свойства, поэтому следует использовать функцию WindowVisible getter – Juan Carlos Rodriguez 14 July 2018 в 17:30
  • 3
    Возможно ли загрузить его в GitHub? Это так странно. Я попытался создать отдельный проект, и он все еще не работает. Если я привяжу это свойство к кнопке или чему-то, оно работает, но для окна все равно ничего не происходит. – Hackawar 14 July 2018 в 19:23
  • 4
    Даже с кодом, который я опубликовал в своем ответе? Я попытаюсь загрузить его в GitHub – Juan Carlos Rodriguez 14 July 2018 в 19:24
  • 5
    да, даже с этим кодом. я ценю это – Hackawar 14 July 2018 в 19:26

Это то, что я сделал, чтобы переопределить содержимое окна.

ContentOverride.OverRideContent<WindowtobeHide>(userControl);

public static class ContentOverride
{
    public static void OverRideContent<T>(UserControl objMain)
    {
        foreach (Window window in Application.Current.Windows)
        {
            if (window.GetType() == typeof(T))
            {                    
                window.Content = objMain;
                window.Activate();
            }
        }
    }
}

Вы можете использовать

 window.Visibility = Visibility.Hidden;

, чтобы скрыть вместо замены содержимое, как то, что я делаю

0
ответ дан RackM 17 August 2018 в 13:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: