小编JŸR*_*JŸR的帖子

listBox.ItemContainerGenerator.ContainerFromItem()将null返回到列表框中添加的NEW项

这是我在这里的第一篇文章,所以我希望你能帮助我解决有关WPF的问题.

我有一个与ObservableCollection绑定的列表框:

    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}" />
Run Code Online (Sandbox Code Playgroud)

这里的情况是,我想知道是否有新项目添加到列表中,所以我做的是创建一个CollectionChanged事件:

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;

     } …
Run Code Online (Sandbox Code Playgroud)

wpf

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

标签 统计

wpf ×1