我必须根据布尔值更改 ListBox 的 ItemTemplate 的背景颜色。这是我的列表框:
<ListBox Name="itemListBox"
ScrollViewer.VerticalScrollBarVisibility="Visible"
SelectionChanged="itemListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<StackPanel Width="200">
<TextBlock FontSize="10"
FontWeight="Bold"
VerticalAlignment="Center"
Text="{Binding Path=Value.DocID}" />
<TextBlock FontSize="10"
VerticalAlignment="Center"
TextWrapping="Wrap"
Text="{Binding Path=Value.Serial}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
如果用户删除了一个项目,我想以灰色背景显示他。
Precision :ListBox 绑定到一个 Dictionnary,其中包含一个布尔值“IsDeleted”。抱歉英语不好。
谢谢
我必须每 250 毫秒测试一次布尔值,最多 2 秒,并在为真时停止。
尝试过这个,但 Thread.Sleep 对我来说不是一个好的解决方案,因为它冻结了我的软件,并且等待更多不会改变任何东西,因为布尔值在冻结时不会改变。
bool onLine = false;
Stopwatch chrono = new Stopwatch();
chrono.Start();
while (chrono.ElapsedMilliseconds < 2000)
{
if (!State().Equals(Online))
{
System.Threading.Thread.Sleep(250);
}
else
{
onLine = true;
operationCompleted();
break;
}
}
if (!onLine)
{
MessageBox.Show("Error");
}
Run Code Online (Sandbox Code Playgroud)
如果有人有正确的实现,我不知道如何在计时器引发的事件中进行测试?