WPF Datagrid Bearbeiten nur einzelne Zelle Wert
Habe ich ein WPF-Datagrid mit 2 Spalten sagen parametername und-Wert.
Meine Forderung ist nur ein Wert(Inhalt einer Zelle) für einen Bestimmten parametername sollten bearbeitet werden und das gesamte Datagrid-Inhalt sollte nur gelesen werden....
Und ich habe einen speichern-button speichern Sie die Werte.
Ich hatte die Erforschung von paar Tagen für eine entsprechende Lösung, die beobachtet werden, eine häufige Anforderung in vielen Fällen, aber ich habe keine gefunden...
Bitte keine Lösung oder Ideen werden geschätzt..
Hier ist der XAML - & cs : Wenn das Datagrid-Steuerelement geladen ich möchte nur die PM2 Wert der Zelle in den Bearbeiten-Modus und alle anderen datagrid Inhalt sollte ausgegraut sein oder nicht-editierbar..
<Grid>
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False"
Margin="20,57,18,19" Name="dataGrid1"
Height="250" SelectionUnit="Cell" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding ParameterName}" Width="100" Header="Parameter Name" IsReadOnly="True"/>
<DataGridTextColumn Binding="{Binding Value}" Width="100" Header="Value" />
</DataGrid.Columns>
</DataGrid>
</Grid>
Und meine CS-code
public partial class dgSF : Window
{
ObservableCollection<ParameterSet> pmset;
public dgSF()
{
InitializeComponent();
pmset = new ObservableCollection<ParameterSet>();
pmset.Add(new ParameterSet() { ParameterName = "PM1", Value = 10 });
pmset.Add(new ParameterSet() { ParameterName = "PM2", Value = 50 });
pmset.Add(new ParameterSet() { ParameterName = "PM3", Value = 70 });
pmset.Add(new ParameterSet() { ParameterName = "PM4", Value = 80 });
pmset.Add(new ParameterSet() { ParameterName = "PM5", Value = 100 });
dataGrid1.ItemsSource = pmset;
}
}
public class ParameterSet
{
public string ParameterName { get; set; }
public int Value { get; set; }
}
Vielen Dank,
Anu
Ich möchte die Bearbeiten nur den Wert.
Wenn das Datagrid-Steuerelement geladen, aus der code-behind-oder aus der XAML-Datei möchte ich, um die PM2 Wert der Zelle in den Bearbeiten-Modus
Ich weiß, das ist eine alte Frage, aber warum machst du nicht mit IsReadOnly="false" den Wert der Spalte definition?
InformationsquelleAutor Anu | 2012-04-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
DataGridTemplateColumn
und definieren sowohlCellTemplate
undCellEditingTemplate
für die Spalten, die Sie wollen in der Lage sein, zu Bearbeiten. Für die Spalte, die Sie nicht Bearbeiten möchten, definieren Sie nur dieCellTemplate
InformationsquelleAutor AlexDrenea
einfach fügen Sie eine weitere Eigenschaft, um Ihre ParameterSet, zB. public bool IsEditable {get;set;}
dann können Sie mit einem cell-Vorlage mit einem datatrigger auf IsEditable festlegen aktiviert ist oder nicht.
EDIT:
xaml
in xaml, die Sie nur erklären, sondern einen Stil, der jede Zelle ist nicht editierbar, mit Ausnahme der mit IsEditable=true. also jedes Parameterset mit IsEditable =true geändert werden kann.
Ich meine, wie check-in XAML oder die cs, die den besonderen Wert der Zelle entspricht und PM2 dann nur legen Sie es in den Bearbeiten-Modus oder anderweitig nicht Dank,
InformationsquelleAutor blindmeis