【发布时间】:2020-04-15 15:40:47
【问题描述】:
我的模型类中有一个属性,如下所示,它是一个枚举。
public class VmOutputCarouselBarCodeServiceControlData : BindableBaseThreadSafe
{
private SensorBufferState _lockStatus;
public SensorBufferState LockStatus
{
get => _lockStatus;
set => Set(ref _lockStatus, value);
}
}
在作为整个视图的 DataContext 的 VM 中,我将值设置如下,
public class VM
{
public VmOutputCarouselBarCodeServiceControlData VmOutputControlData { get; set; }
public VM()
{
VmOutputControlData=new VmOutputCarouselBarCodeServiceControlData();
VmOutputControlData.LockStatus=SensorBufferState.Active;
}
}
public enum SensorBufferState
{
Default,
Active,
InActive,
Error
}
在我的 xaml 中,我在数据模板中有一个数据模板,如下所示:
<DataTemplate x:Key="OutputTemplate">
<Grid>
<ContentControl Grid.Row="0"
Grid.Column="1"
DataContext="{Binding VmOutputControlData.LockStatus}"
ContentTemplate="{StaticResource ErrorContentControl}"/>
</Grid>
</DataTemplate>
<DataTemplate x:Key="ErrorContentControl">
<Grid>
<Rectangle x:Name="SensorStatusRectangle"
Fill="{Binding Path=.,Mode=OneWay,Converter={StaticResource SensorBufferToColorConverter}}"
Height="30"
Width="60"/>
</Grid>
</DataTemplate>
在 xaml.cs 中
整个视图的数据上下文设置为 VM
问题是当我在转换器类中保留一个断点时,它永远不会命中。但是当我删除它时它正在运行。从绑定路径,断点来到转换器。 ContentControl 的 DataContext 显示为 Active,这是枚举状态之一。然而绑定不起作用。请帮忙。
【问题讨论】:
标签: c# wpf mvvm datatemplate