2013-07-05 2 views
0

편집 할 수 있습니다. 목록 상자에 빈 항목을 추가하고 항목은 목록 상자의 상단에 빈 항목을 추가하려면 해당 항목을 편집 할 수 방법을

나는 빈 항목을 추가하고 다음 코드를 작성하지만, 나를 편집 할 수 없습니다. 편집 가능하게하려면 어떻게해야합니까? 내 목록 상자 내부
private void CustomButton_Click(object sender, RoutedEventArgs e) 
    { 
     ListBoxItem itm = new ListBoxItem(); 
     itm.Content = ""; 

     listBox1.Items.Insert(0,itm); 
    } 

, 내가 여기
<DataTemplate x:Key="DefaultDataTemplate" > 
      <StackPanel Orientation="Horizontal" Width="596"> 
       <TextBox Text="{Binding ClientNameBinding}" Background="Transparent" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="145"/> 
       <TextBox Text="{Binding ApplicationNameBinding}" Background="Transparent" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="90"/> 
       <TextBox Text="{Binding StartTimeBinding}" Background="Transparent" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="100"/> 
       <TextBox Text="{Binding StopTimeBinding}" Background="Transparent" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="60"/> 
       <TextBox Text="{Binding TaskNameBinding}" Background="Transparent" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="71"/> 
       <TextBox Text="{Binding ProjectNameBinding}" Background="Transparent" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="130"/> 
      </StackPanel> 
     </DataTemplate> 

     <!-- Editable DataTemplate --> 
     <DataTemplate x:Key="EditableDataTemplate"> 
       <StackPanel Orientation="Horizontal" Width="596"> 
       <!--<ComboBox x:Name="ClientComboBox" SelectionChanged="ClientComboBoxChanged" ItemsSource="{Binding Path=clientList, ElementName=MainWin}" SelectedValuePath="_id" DisplayMemberPath="_name" SelectedItem="{Binding ClientNameBindingClass, Mode=OneWayToSource}" Background="Yellow" Padding="0" Margin="0" BorderThickness="0" Width="145"/>--> 
       <TextBox Text="{Binding ClientNameBinding,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Background="Yellow" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="145"/> 
       <TextBox Text="{Binding ApplicationNameBinding}" Background="Yellow" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="90"/> 
       <TextBox Text="{Binding StartTimeBinding}" Background="Yellow" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="100"/> 
       <TextBox Text="{Binding StopTimeBinding}" Background="Yellow" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="60"/> 
       <TextBox Text="{Binding TaskNameBinding}" Background="Yellow" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="130"/> 
       <ComboBox x:Name="ProjectComboBox" SelectionChanged="ProjectComboBoxChanged" ItemsSource="{Binding Path=projectList, ElementName=MainWin}" SelectedValuePath="_id" DisplayMemberPath="_name" SelectedItem="{Binding ProjectNameBindingClass, Mode=OneWayToSource}" Width="71" Background="Yellow" BorderThickness="0"/> 
      </StackPanel> 
     </DataTemplate>! 

은 이미지입니다, 일을 다음했습니다

enter image description here

+1

왜 DataGrid를 사용하지 않습니까? 나는 ListBox가 편집이 아닌 표시만을위한 것이라고 생각한다. – Vale

+0

일부 목록에 바인딩 된 ListBox의 텍스트 상자가 있으므로 버튼을 클릭하면 값이 자동으로 제공됩니다. 이제 수동으로 값을 입력하고 싶습니다. – Dinesh

+0

'ListBox/ListBoxItem'의'XAML '을 보여줍니다. 'Style/Template'을 사용합니까? –

답변

0

ListBox은 편집 할 수 없습니다. textbox을 만들고 그 값을 입력하면 그 값을 listboxitem에 할당 할 수 있습니다.

다른 옵션은 DataGridView (설명에 언급 된대로)을 사용하는 것입니다. 그것은 편집을 허용합니다.

+0

일부 목록에 바인딩 된 listBox의 textBox가 있습니다. 이제 수동으로 텍스트 상자에 값을 쓰려고합니다. – Dinesh

+0

@Dinesh'textbox'를 편집 가능하게하십시오'ReadOnly = "true"'xml 코드에서 편집하십시오 – Shaharyar

+0

"ReadOnly"접근이 불가능합니다. – Dinesh

관련 문제