我创建了一个数据网格。现在我想使用 RestSharp 将我编辑的单元格保存在数据库中。我读到它适用于 IEditableObject。
我试图插入它。这是我的 ViewModel 的开始:
class LDViewModel : NotifyPropertyBase, IEditableObject
然后创建了 BeginEdit、CancelEdit 和 EndEdit 方法。我将代码添加到 EndEdit 类:
public void EndEdit()
{
var client = new RestClient("MYDOMAIN");
var request = new RestRequest("THINGS", Method.POST)
.AddUrlSegment("name", Name)
.AddUrlSegment("kompetenzID", LDCurrentKompetenz.KompetenzID)
.AddUrlSegment("ergebnis", LDCurrentKompetenz.Ergebnis)
.AddUrlSegment("stufe", LDCurrentKompetenz.Stufe)
.AddUrlSegment("niveau", LDCurrentKompetenz.Niveau)
.AddUrlSegment("note", LDCurrentKompetenz.Note)
.AddUrlSegment("datum", LDCurrentKompetenz.Datum)
.AddUrlSegment("kuerzel", LDCurrentKompetenz.Kuerzel)
.AddHeader("Authorization", "Bearer " + ViewFingerPrint);
IRestResponse restResponse = client.Execute(request);
if (restResponse.StatusCode == HttpStatusCode.BadRequest)
MessageBox.Show("Irgendetwas stimmt mit der Verbindung nicht.");
else
MessageBox.Show("Die Leistungsdokumentation wurde erfolgreich aktualisiert.");
}
这就是我的 DataGrid 的样子:
<DataGrid ItemsSource="{Binding LDKompetenzen, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}" IsReadOnly="False" AutoGenerateColumns="False" CanUserDeleteRows="True" CanUserAddRows="True" CanUserSortColumns="True" FontSize="12" Height="Auto" BorderThickness="0" SelectedItem="{Binding LDCurrentKompetenz.KompetenzID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}">
<DataGrid.Resources>
<Style BasedOn="{StaticResource {x:Type DataGridColumnHeader}}" TargetType="{x:Type DataGridColumnHeader}" >
<Setter Property="Background" Value="LightGray" />
<Setter Property="Foreground" Value="Black" />
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="BorderThickness" Value="1 1 1 1"/>
<Setter Property="Margin" Value="-1,-1,0,0" />
<Setter Property="Height" Value="28" />
<Setter Property="Width" Value="auto"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="FontStyle" Value="Italic"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="Padding" Value="15,0,15,0"/>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Kompetenz" Binding="{Binding Kompetenz, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}" IsReadOnly="True">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextBlock.Background" Value="{Binding Background}" />
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="Padding" Value="0,20,0,0"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTemplateColumn Header="Farben" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<Button Content="" Background="White" Margin="2" Padding="5,3,5,3"></Button>
<Button Content="" Background="Yellow" Margin="2" Padding="5,3,5,3"></Button>
<Button Content="" Background="LightGreen" Margin="2" Padding="5,3,5,3"></Button>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Stufe" Binding="{Binding Stufe, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Niveau" Binding="{Binding Niveau, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Ergebnis" Binding="{Binding Ergebnis, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Note" Binding="{Binding Note, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTemplateColumn Header="Datum">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding Datum, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}" BorderThickness="0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Kürzel" Binding="{Binding Kuerzel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
不幸的是,他没有使用 RestSharp 执行命令。他只是没有回应。
错误在哪里?我是不是忘记了什么?