小编bet*_*sou的帖子

更改 WPF ItemTemplate 的背景颜色

我必须根据布尔值更改 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”。抱歉英语不好。
谢谢

c# wpf xaml listbox

1
推荐指数
1
解决办法
1972
查看次数

C#:等待 n 毫秒,并每 n/m 毫秒测试一个布尔值

我必须每 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)

如果有人有正确的实现,我不知道如何在计时器引发的事件中进行测试?

c# timer

1
推荐指数
1
解决办法
2925
查看次数

标签 统计

c# ×2

listbox ×1

timer ×1

wpf ×1

xaml ×1