0
我想將一個stackpanel中的某些文本框的Visibility屬性綁定到使用MVVM的WPF複選框的IsChecked屬性。爲此,我創建了一個屬性,IsBoxChecked作爲布爾與私人支持字段_isBoxChecked這兩個文本框和複選框都綁定到。當我運行該程序時,無論我將屬性初始化爲什麼值,具有綁定可見性屬性的文本框都會自動摺疊。另外,如果我在構造函數中將屬性初始化爲true,則複選框不會顯示。這是代碼。綁定複選框被檢查到堆棧面板可見性
<StackPanel Grid.Column="0"
Margin="10,37"
HorizontalAlignment="Right"
VerticalAlignment="Top">
<TextBlock Text="Always Visible" Margin="5"/>
<TextBlock Text="Also Always Visible" Margin="5"/>
<TextBlock Text="Needs to Hide and Unhide" Margin="5" Visibility="{Binding IsBoxChecked, Converter={StaticResource BoolToVis}}"/>
<CheckBox Content="Text" IsChecked="{Binding IsBoxChecked, Mode=TwoWay}" Margin="5"/>
</StackPanel>
這是我的ViewModel。
Public Class NewSpringViewModel
Implements INotifyPropertyChanged
Private _newWindow As NewView
Private _isBoxChecked As Boolean
Public Sub New()
_newWindow = New NewView
_newWindow.DataContext = Me
_newWindow.Show()
IsBoxChecked = True
End Sub
Public Property IsBoxChecked As Boolean
Get
Return _isBoxChecked
End Get
Set(value As Boolean)
_isBoxChecked = value
OnPropertyChanged("IsBoxChecked")
End Set
End Property
Private Sub OnPropertyChanged(PropertyName As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("PropertyName"))
End Sub
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
End Class
綁定到屬性的複選框可以正常運行。如果我在設置了IsBox Checked屬性的setter上設置了一個斷點,則如果選中或取消選中該框,調試器將中斷。
感謝您的任何幫助。
喬恩
感謝這麼多!愚蠢的錯誤...我喜歡這個建議,以更好地完成XAML。現在完美運作。 –