2017-02-09 1 views
0
ProjectInformation instance = lstbxindex.SelectedItem as ProjectInformation; 
string name = instance.ProjectRow.Name; 
IEditableCollectionView items = lstbxindex.Items; 
if(items.CanRemove) 
{ 
    items.Remove(lstbxindex.SelectedItem); 
} 

Используя эти строки кода, удалите listboxitems. после редактирования значений мне нужно добавить значения в список.Как добавить новый элемент в список, привязанный от кода до страницы xaml

XAML

<ListBox ItemsSource="{Binding}" HorizontalContentAlignment="Left" x:Name="lstbxindex" SelectionMode="Extended" Foreground="White" FontSize="20px" Height="241" BorderBrush="#555555" Margin="10,34,16,0" VerticalAlignment="Top" Width="322" Background="#555555" > 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <WrapPanel Orientation="Horizontal" Margin="5" > 
       <TextBlock Height="40px" Width="80px" Text="{Binding Roundedhour1}" FontSize="24" Background="#555555" Foreground="Black"></TextBlock> 
       <Label x:Name="items" Content="{Binding ProjectRow.Name}" Margin="35,0,0,0" MouseDoubleClick="items_MouseDoubleClick" Foreground="White"></Label> 
      </WrapPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 
+1

Вы должны быть [получение ошибок] (http://stackoverflow.com/q/27348796/1997232) при попытке добавлять элементы. Где вы устанавливаете DataContext? Какой тип данных? Он должен быть ['ObservableCollection <>'] (https://msdn.microsoft.com/en-us/library/ms668604 (v = vs.110) .aspx), а затем просто используйте 'Add' /' Insert' метод этой коллекции для добавления/вставки элементов в 'ListBox'. – Sinatr

+0

Возможный дубликат [Добавление элемента в связанный WPF ListBox] (http://stackoverflow.com/questions/1307067/adding-an-item-to-a-bound-wpf-listbox) – Sinatr

+0

Я не использую наблюдаемый коллекция. – user688

ответ

1

Установите ItemsSource свойство ListBox к ObservableCollection<ProjectInformation> и добавлять и удалять элементы из этой коллекции с использованием Add и Remove методы.

XAML:

<ListBox HorizontalContentAlignment="Left" x:Name="lstbxindex" SelectionMode="Extended" Foreground="White" FontSize="20px" Height="241" BorderBrush="#555555" Margin="10,34,16,0" VerticalAlignment="Top" Width="322" Background="#555555" > 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <WrapPanel Orientation="Horizontal" Margin="5" > 
       <TextBlock Height="40px" Width="80px" Text="{Binding Roundedhour1}" FontSize="24" Background="#555555" Foreground="Black"></TextBlock> 
       <Label x:Name="items" Content="{Binding ProjectRow.Name}" Margin="35,0,0,0" MouseDoubleClick="items_MouseDoubleClick" Foreground="White"></Label> 
      </WrapPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Код:

public class ProjectInformation 
{ 
    public int Roundedhour1 { get; set; } 
} 

public partial class MainWindow : Window 
{ 
    private ObservableCollection<ProjectInformation> _sourceCollection = new ObservableCollection<ProjectInformation>(); 
    public MainWindow() 
    { 
     InitializeComponent(); 
     lstbxindex.ItemsSource = _sourceCollection; 

     //add 
     ProjectInformation item = new ProjectInformation() { Roundedhour1 = 1 }; 
     _sourceCollection.Add(item); 
    } 

    private void items_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
    { 
     //remove 
     _sourceCollection.Remove(lstbxindex.SelectedItem as ProjectInformation); 
    } 
}