- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我在这里的第一篇文章,所以我希望你能帮助我解决关于 WPF 的问题。
我有一个与 ObservableCollection 绑定(bind)的列表框:
public ObservableCollection<DeviceSetting> DeviceSettings
{
get { return _deviceSettings; }
set { _deviceSettings = value; }
}
<ListBox ItemTemplate="{StaticResource IPItemTemplate}" Name="listBoxAddresses" SelectionMode="Extended" ItemsSource="{Binding Path=TestSetting.DeviceSettings, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
ItemContainerStyle="{StaticResource ContainerStyle}" />
TestSetting.DeviceSettings.CollectionChanged += mListBox_CollectionChanged;
private void mListBox_CollectionChanged(object sender,NotifyCollectionChangedEventArgs e)
{
if (e.Action == NotifyCollectionChangedAction.Add)
{
for (int i = 0; i < TestSetting.DeviceSettings.Count; i++){
ListBoxItem myListBoxItem = (ListBoxItem)(listBoxAddresses.ItemContainerGenerator.ContainerFromItem(listBoxAddresses.Items[i]));
if (!TestSetting.DeviceSettings[i].IsNetwork && DeviceDiscovery.IsSelected)
myListBoxItem.IsEnabled = false;
else if (TestSetting.DeviceSettings[i].IsNetwork && !DeviceDiscovery.IsSelected)
myListBoxItem.IsEnabled = false;
else
myListBoxItem.IsEnabled = true;
}
}
ListBoxItem myListBoxItem = (ListBoxItem)(listBoxAddresses.ItemContainerGenerator.ContainerFromItem(listBoxAddresses.Items[i]));
最佳答案
您正在处理基础集合 CollectionChanged
事件。仅仅因为更改了集合并不意味着该项目已被渲染并且 UIElement
准备好了。
注册 ItemsGenerator.StatusChanged
应该保证 UIElement
的事件准备好了。
关于wpf - listBox.ItemContainerGenerator.ContainerFromItem() 将 null 返回到添加到列表框中的 NEW 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8046321/
我使用以下代码来更改列表框特定项目的颜色,例如从灰色显示为灰色,或者更改为灰色,而不是黑色(当您从列表框D&D到文本框进行D转换时(用户指示此特定项目已被拖动)),问题在这里,lbi总是被归为null
我有一个列表框,直到最近它还显示一个平面项目列表。我能够使用 myList.ItemContainerGenerator.ConainerFromItem(thing) 检索列表中托管“thing”的
我有一些奇怪的行为,我似乎无法解决。当我遍历 ListBox.ItemsSource 属性中的项目时,我似乎无法获取容器?我期待看到 ListBoxItem 返回,但我只得到 null。 有任何想法吗
我看过here和 here和许多其他地方,但我似乎无法让 ItemContainerGenerator.ContainerFromItem 方法在 WPF TreeView 上工作!我试图传递我想看到
我看过here和 here和许多其他地方,但我似乎无法让 ItemContainerGenerator.ContainerFromItem 方法在 WPF TreeView 上工作!我试图传递我想看到
我的页面上有一个 TreeView。它绑定(bind)到包含契约(Contract)的客户集合,例如: public class Client { public int ClientID { ge
在我的应用程序中,我需要在 ItemsSource 更改后立即获取 ItemsCollection 的内容。或者,至少,在可以视觉绘制内容之前。 我测试了一些接近于以下的东西: void UserCo
我的控件 .ItemContainerGenerator.Status 是 NotStarted。我如何告诉它现在开始并等到它完成? 最佳答案 如果您进行一些同步操作,您可能希望手动启动生成器 - 在
我有一个包含几个项目的列表框,直到没有滚动条出现时一切都很好,但是一旦滚动条出现,ItemContainerGenerator 就会返回 null。 我阅读了一些博客,发现可能是因为垂直化堆栈面板。如
我一直在使用以下代码在 Dispatcher 中绑定(bind) wpf ListBox Dispatcher.BeginInvoke(new Action(() =>
我正在使用这个片段来分析我在数据网格上选择的行。 for (int i = 0; i < dgDetalle.Items.Count; i++) { DataGridRow row = (Da
在下面的示例中,当我选择“String”时,窗口的标题变为“null”。但我必须获得“String”的容器。具体来说,我想执行与 SelectedItem = null 相同的操作(但该属性只对 Tr
TreeView 没有 ScrollIntoView() 方法 唯一的方法是为相应的数据项容器调用 TreeVewItem.BringIntoView()。 但如果节点不可见且尚未生成容器,Items
这是我在这里的第一篇文章,所以我希望你能帮助我解决关于 WPF 的问题。 我有一个与 ObservableCollection 绑定(bind)的列表框: public ObservableC
我在使用 this question 时遇到了类似的问题但是 VirtualizingStackPanel.IsVirtualizing="False" 没有解决我的问题。有没有人面临同样的问题? 问
我是一名优秀的程序员,十分优秀!