Видимость видимости не меняется - PullRequest
0 голосов
/ 10 сентября 2010

У меня в ракушке 2 вида.Они оба используют одну и ту же модель представления, фактически оболочка также использует одну и ту же модель представления.У меня есть 2 кнопки в оболочке, которые должны изменить видимость двух представлений.Похоже, что, хотя команда запускается, что значение изменяется, и что я настроил onproperty Change правильно, представление не обновляется.Я пытался управлять видимостью из родительской оболочки и из самого представления.

Это мои команды:

Public ReadOnly Property ShowMinimalistSearchResultsView As ICommand
            Get
                If _cmdShowMinimalistSearchResultsView Is Nothing Then
                    _cmdShowMinimalistSearchResultsView = New RelayCommand(AddressOf ShowMinimalistSearchResultsViewExecute)

                End If
                Return _cmdShowMinimalistSearchResultsView

            End Get
        End Property

        Public ReadOnly Property ShowSearchResultsView As ICommand
            Get
                If _cmdShowSearchResultsView Is Nothing Then
                    _cmdShowSearchResultsView = New RelayCommand(AddressOf ShowSearchResultsViewExecute)
                End If
                Return _cmdShowSearchResultsView

            End Get
        End Property

Это CommandExecutes:

Private Sub ShowMinimalistSearchResultsViewExecute()
    Me.IsMinimalistSearchResultsViewVisible = True
End Sub

Private Sub ShowSearchResultsViewExecute()
    Me.IsMinimalistSearchResultsViewVisible = False

End Sub

Это логическое значение видимости ....

Private _isminimalistsearchresultsviewvisible As Boolean
Public Property IsMinimalistSearchResultsViewVisible As Boolean
    Get
        Return _isminimalistsearchresultsviewvisible
    End Get
    Set(ByVal value As Boolean)
        _isminimalistsearchresultsviewvisible = value
        OnPropertyChanged("IsMinimalistSearchResultsViewVisible")
    End Set
End Property

Вот XAML для представления ....

<local:MinimalistSearchResultsView Grid.Row="1"
                                           Visibility="{Binding IsMinimalistSearchResultsViewVisible,Converter={StaticResource DebugConverter}}" />

В настоящее время все, что я пытаюсь сделать, это получить этопосмотреть, чтобы показать или исчезнуть, когда я выдаю команды.Я использую конвертер отладки, чтобы проверить, пытается ли видимость даже измениться;что это не так.

Почему это не работает?

Ответы [ 2 ]

1 голос
/ 10 сентября 2010

На основании вашего комментария к Jehof ...

Когда вы говорите «затем возвращает его», вы говорите, что он возвращает логическое значение или видимость. Если вы не используете BooleanToVisibilityConverter, вы должны убедиться, что ваш конвертер выполняет логику для преобразования логического значения в Visibilty.Visible или Visibility.Hidden / Collapsed.

Если вы просто возвращаете логическое значение, которое входит в ваш конвертер, то я считаю, что это будет большой проблемой.

0 голосов
/ 13 сентября 2010

Скотт вроде бы шел в правильном направлении. Это была проблема экземпляра модели представления. Несмотря на то, что все 3 используют одну и ту же модель представления, у меня есть модели представления, объявленные внутри каждого базового представления (для упрощения повторного использования), в моей оболочке для представлений я не назначаю код данных каждого дочернего представления для модели представления оболочек. Таким образом, в каждом представлении использовался отдельный экземпляр одного и того же представления. Это то, что я сделал раньше, и, надеюсь, запомним в будущем. :)

...