我正在开始使用 WPF,并且在实现数据绑定时遇到了一些困难。
具体来说,我创建了一个简单的用户控件,其中包含一个标签和一个按钮。对于这个用户控件,我创建了一个 ViewModel,它只包含两个属性,string
“Text”和SimpleEnum
“Status”。
控件的重点是显示某物的状态,例如“已连接”是/否等。按钮的背景颜色表示状态。
我的 XAML 看起来像这样
<Control.DataContext>
<vm:OnOffStatusViewModel />
</Control.DataContext>
<Label x:Name="label1" Height="Auto" HorizontalAlignment="Left" Content="{Binding Text}" Width="280" />
<Button Style="{StaticResource GlassButton}" Height="14" Width="14" Background="{Binding Status}" Grid.Column="1" />
和xmlns:vm="clr-namespace:Controls"
代码隐藏具有ViewModel
公开视图模型的属性,实现 INotifyPropertyChanged,并初始化为_viewModel = (OnOffStatusViewModel) DataContext;
现在,在我使用这个控件的视图中,我已经设法将 Text 设置为某些东西,就像我在我的实现视图代码隐藏中一样onOffStatus1.ViewModel.Text = ...
,但是,状态是由枚举设置的,因此不能真正绑定到按钮的背景属性。
我与此相关的问题:
我进行控制的方式是否正确?如果不是,在用户控件中实现数据绑定的正确方法是什么?
如何让我的枚举状态使用绑定更新按钮的背景属性?