C# 使用相同控件在datagrid中添加和编辑项
嘿嘿, 我在wpf应用程序中使用MVVM。我有显示项目列表的DataGrid,我在ViewModel中将C# 使用相同控件在datagrid中添加和编辑项,c#,wpf,mvvm,datagrid,C#,Wpf,Mvvm,Datagrid,嘿嘿, 我在wpf应用程序中使用MVVM。我有显示项目列表的DataGrid,我在ViewModel中将SelectedItem绑定到CurrentSequence属性。当CurrentSequence更改时,该对象的属性将显示在其他控件中进行编辑 这是我的xaml: <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Path=ColorSettingsSequences}" Sele
SelectedItem
绑定到CurrentSequence
属性。当CurrentSequence
更改时,该对象的属性将显示在其他控件中进行编辑
这是我的xaml:
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Path=ColorSettingsSequences}"
SelectedItem="{Binding Path=CurrentSequence, Mode=TwoWay}">
.... more things here ...
</DataGrid>
<StackPanel Grid.Column="0" Grid.Row="0">
<Grid>
<Label Content="Start temperature (°C)" Height="28" HorizontalAlignment="Left" x:Name="lblSeqStartTemp" VerticalAlignment="Top" />
<TextBox Height="23" Margin="0,28,10,0" x:Name="tbSeqStartTemp" VerticalAlignment="Top" Text="{Binding Path=CurrentSequence.StartTemp}" />
</Grid>
<Grid>
<Label Content="Start color" Height="28" HorizontalAlignment="Left" x:Name="lblSeqHue" VerticalAlignment="Top" />
<xctk:ColorPicker Margin="0,28,10,0" x:Name="clrpSeqHue" SelectedColor="{Binding Path=CurrentSequence.StartHue, Converter={StaticResource hueToColor}, ConverterParameter=False}" ShowStandardColors="False" />
</Grid>
</StackPanel>
<StackPanel Grid.Column="1" Grid.Row="0">
<Grid>
<Label Content="End temperature (°C)" Height="28" HorizontalAlignment="Left" x:Name="lblSeqEndTemp" VerticalAlignment="Top" />
<TextBox Height="23" Margin="0,28,10,0" x:Name="tbSeqEndTemp" VerticalAlignment="Top" Text="{Binding Path=CurrentSequence.EndTemp}" />
</Grid>
<Grid>
<Label Content="End color" Height="28" HorizontalAlignment="Left" x:Name="lblSeqEndHue" VerticalAlignment="Top" />
<xctk:ColorPicker Margin="0,28,10,0" x:Name="clrpSeqEndHue" SelectedColor="{Binding Path=CurrentSequence.EndHue, Converter={StaticResource hueToColor}, ConverterParameter=False}" ShowStandardColors="False" />
</Grid>
</StackPanel>
现在的问题是,我如何添加一个按钮来保存更改或添加一个全新的项目。我知道如何做一个或另一个,但是2和相同的控件一起如何…您可以在视图模型上创建一个属性,该属性的类型为ColorSettingsSequenceSequence,名为CurrentSequenceEdit,您可以在更改选择时设置此对象的值 然后单击添加按钮,您可以创建一个新的ColorSettingsSequenceSequence对象,并将其设置为CurrentSequenceEdit的值
通常,在一个新对象上,您会有一个未设置或设置为负数的ID,您可以在Save命令中使用该ID来确定是否需要将其添加到网格中。Ahh,我不知道我自己怎么能不考虑这个问题。事实上,我知道,我在想,在我向控件输入新值后,我会按“添加新”按钮。。
private ColorSettingsSequencesSequence _currentSequence;
public ColorSettingsSequencesSequence CurrentSequence
{
get
{
return this._currentSequence;
}
set
{
this._currentSequence = value;
OnPropertyChanged("CurrentSequence");
}
}