可能是一个简单的但我似乎无法得到它的工作,这里是列表视图和绑定的XAML;绑定ListViewItem布尔型背景
<ListView
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
x:Name="lstTrackers"
ItemsSource="{Binding Path=MainWindowViewModel.TrackerCollection}"
HorizontalContentAlignment="Stretch">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=LastTransmitted}" Value="True">
<Setter Property="Background" Value="Green"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=LastTransmitted}" Value="False">
<Setter Property="Background" Value="White"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock
Text="{Binding Path=Description}"
x:Name="listTextClick"
MouseLeftButtonUp="listTextClick_MouseLeftButtonUp"
HorizontalAlignment="Stretch"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
和我试图绑定它的属性;
public class TrackerViewModel : ViewModelBase
{
readonly Tracker _tracker;
public TrackerViewModel(Tracker tracker)
{
_tracker = tracker;
}
public bool LastTransmitted
{
get
{
return _tracker.lastTransmitted;
}
set
{
_tracker.lastTransmitted = value;
OnPropertyChanged("LastTransmitted");
}
}
}
然后我只是试图将布尔值设置为true,我认为这会触发样式处理;
_trackerViewModel.LastTransmitted = true;
然而,似乎什么也没有发生。有什么简单而又迫切需要我失踪?
注意:我已经尝试将“true”更改为“True”,只是incase。
编辑1:似乎没有通知变化,这是非常奇怪的,因为我确定它是。如果我将触发器更改为;
<Style x:Key="listBoxStyle" TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=LastTransmitted}" Value="True">
<Setter Property="Background" Value="Green"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=LastTransmitted}" Value="False">
<Setter Property="Background" Value="Blue" ></Setter>
</DataTrigger>
</Style.Triggers>
<!--<Setter Property="Background" Value="Red"/>-->
</Style>
然后textblocks都是蓝色的,如布尔值被设置为true所示。但是,如果设置为true,并且通知了属性,则不会更改。也许这个清单不是很好的清爽?我确定它与ObservableCollection相关联。编辑2:并在那个笔记,事实证明我使用自定义列表; “ThreadedBindingList”。它可能不会从OnNotify更新..所以我不得不尝试解决这个问题。
我希望你能看到我的viewmodel的其余部分,我字面上每次提高属性更改。每一次,但这次,XD是多么愚蠢的错误,说我已经添加了属性发生了变化,而且似乎还没有发生。 –
仍然没有用,我很害怕。我试图将样式应用于文本块,应该以不同的方式完成吗?作为风格的目标目标ListViewItem –
@ Shane.C我改变了我的答案。看看它。 – Jehof