gpt4 book ai didi

c# - 列表框迭代 WPF

转载 作者:行者123 更新时间:2023-11-30 16:24:59 25 4
gpt4 key购买 nike

我有一个绑定(bind)到可观察集合的列表框,XAML 片段显示每个项目将包含的内容(文本 block 和 Slidercontrol)Slidercontrol 最初设置为不可见

         ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="500">

<stackPanel Orientation="Horizontal">
<TextBlock Margin="0,0,0,0" Width="100"........
<TextBlock Margin="200,10,0,0" Width="100"........
</StackPanel>

<Slider Margin="0,0,0,0" Height="100".................

<StackPanel Orientation="Horizontal">
<TextBlock Width="100" TextWrapping="Wrap"..............
<TextBlock Width="100" TextWrapping="Wrap"...............
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>

我想首先检查 observableCollection 列表对象的某个 Time 属性,如果时间在当前系统时间之内,我想激活相应的 slider 控件 ListBox 项并更新它,silder 指示时间进度并更新到结束时间和用户无法移动它,但如何访问或迭代 ListBoxitem 以便我可以通过 visualhelptree 激活 slider 控件。帮助!!!!!!

最佳答案

再次更新


首先,只要您只是使用 Slider 及时调整进度,那么正确使用的控件就是 ProgressBar 控件( Slider 控件用于让用户更改值,例如更改媒体播放器的音量)。此外,您可以更轻松地实现这一点,而无需使用 TreeVisualHelper。假设您绑定(bind)到以下 ObservableCollection 对象:

ObservableCOllection<MyObject> Collection;

编辑MyObject类并添加double属性来指示ProgressBar的进度值,另外添加一个Timer 对象每 5 分钟触发一次以检查两次并通过更改 bool 值来决定是否启用 Slider,如下所示:

public class MyObject
{
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }

public double ProgressValue { get; set; }
private System.Timers.Timer TimeChecker;

public MyObject()
{
// 5 Minutes = 5 * 60 Seconds = 5 * 60 * 1000 Milliseconds
TimeChecker = new Timer(300000);
TimeChecker.Elapsed += CheckTimes;
}


public CheckTimes()
{
// Check StartTime and EndTime to decide whether to enable the slider or not.
if(...)
{
// Here you can add the appropriate value to indicate the current progress
ProgressValue == ....;
}
else
ProgressValue == ....;
}
}

然后,在项目模板中,将您的 ProgressBar.Value 属性绑定(bind)到 ProgressValue 属性,它将类似于以下内容:

<BrogressBar Value="{Binding ProgressValue}"/>

这样每个项目都会有自己的计时器。一种更好的替代方案,即只有一个计时器每 5 分钟迭代一次集合并执行必要的操作。

关于c# - 列表框迭代 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10314944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com