Я бы использовал простой диалог с двумя помеченными текстовыми полями, новая пара будет добавлена к исходным данным, которые должны быть связаны с DataGrid
, чтобы строки генерировались автоматически.
Редактировать: пример решения DataGrid.
XAML:
<Window
...
DataContext="{Binding RelativeSource={RelativeSource Mode=Self}}">
<StackPanel Orientation="Vertical">
<DataGrid ItemsSource="{Binding GridData}"/>
</StackPanel>
</Window>
Код:
В окне класс:
private ObservableCollection<Pair> gridData = new ObservableCollection<Pair>(new Pair[]{new Pair()});
public ObservableCollection<Pair> GridData
{
get { return gridData; }
}
Класс пары:
public class Pair : INotifyPropertyChanged
{
private string key = "Key";
public string Key
{
get { return key; }
set
{
if (this.key != value)
{
key = value;
NotifyPropertyChanged("Key");
}
}
}
private double value = 0;
public double Value
{
get { return value; }
set
{
if (this.value != value)
{
this.value = value;
NotifyPropertyChanged("Value");
}
}
}
public Pair() { }
public Pair(string key, double value)
: this()
{
Key = key;
Value = value;
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
Вы должны иметь возможность добавлять новые пары с обычной функциональностью DataGrid.