2012-04-08 2 views
0

私はListViewに行があります。特定のセルをクリックすると、選択したセルをコンボボックスで編集できるようにしたいのですが、編集した後でもコンボボックスが残っています。私はコンボボックスをテキストブロックに戻したい。コンボでリストビューの行を編集する方法

 <Style TargetType="{x:Type FrameworkElement}" 
    x:Key="GridEditStyle"> 
      <Setter Property="VerticalAlignment" Value="Center" /> 
      <Setter Property="Visibility" 
    Value="{Binding Path=IsSelected, 
     RelativeSource={RelativeSource FindAncestor, 
      AncestorType={x:Type ListViewItem}}, 
     Converter={StaticResource boolToVis}, 
      ConverterParameter=True}" /> 
     </Style> 

<ComboBox SelectedItem="Present" 
                  ItemsSource="{Binding ElementName=This, 
                  Path=AvailablePublishers}" 
                  Style="{StaticResource GridEditStyle}" /> 

の背後にあるコードは

private ObservableCollection<string> _AvailablePublishers = 
new ObservableCollection<string>(); 
    public Student_Attendance() 
    { 
     InitializeComponent(); 
     _AvailablePublishers.Add("Present"); 
     _AvailablePublishers.Add("Absent"); 
     _AvailablePublishers.Add("Late"); 



    } 
    public ObservableCollection<string> AvailablePublishers 
    { get { return _AvailablePublishers; } } 

    public class BoolToVisibilityConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, 
     object parameter, System.Globalization.CultureInfo culture) 
    { 
     bool param = bool.Parse(parameter as string); 
     bool val = (bool)value; 

     return val == param ? Visibility.Visible : Visibility.Hidden; 
    } 

    public object ConvertBack(object value, Type targetType, 
     object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

ですplzは あなたはあなたがDataGridを使用した場合、あなたは表示と編集を切り替えるために何をしなければならないwould't知っているあなたに

答えて

0

に感謝私を助けてテンプレートは自動的に作成されています...開始するサンプルは次のとおりです。

<DataGrid ItemsSource="{Binding ...}"> 
    <DataGrid.Columns> 
     <DataGridTemplateColumn> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock DataContext="{Binding ...}"/> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
       <DataGridTemplateColumn.CellEditingTemplate> 
        <DataTemplate> 
         <ComboBox ItemsSource="{Binding ElementName=This, Path=AvailablePublishers}" SelectedItem="{Binding ...}"/> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellEditingTemplate> 
      </DataGridTemplateColumn> 
+0

ありがとうございます。質問は、ダイナミックヘッダーを持つ複数の列を動的に持つことができ、列内に各セルのチェックボックスを持つことができますか?チェックボックスのヘッダー名を確認できますか? – rohit

+0

ええ、もし私があなたがダイナミックなことを暗示していると理解すれば。ほとんどのコントロールと同様に、好きなようにDataGridをコントロールすることができます。時間と労力をかけることができます。 –

+0

また、ListViewを使用して探していたものを達成することができますが、それは単なる問題です。私はここにいくつかの記事を持っている、私は誰かを助けたと思った。しかし、私はあなたの質問を見て、私はちょうどあなたがボックスから必要なものを行うことができます、そのすべてのトラブルを通過すると思った?とにかく助けにならないのはうれしいです。 –

関連する問題