1
在WPF XAML頁面我想向用戶提供一個下拉框,其中將有兩種選擇:我們如何允許用戶以不同方式添加/編輯/刪除WPF gridview控件中的記錄?
(1)允許用戶在gridview的編輯 (2)允許用戶在編輯表單
如果用戶選擇第一個選項,然後我希望用戶允許在gridview本身中添加/編輯記錄。
如果用戶選擇第二個選項,那麼在點擊gridview的添加/編輯按鈕時,一個表單頁面將出現在gridview的所有字段中。在表單中,用戶將能夠添加/編輯gridview的記錄。
任何人都可以提出這個想法嗎?
這裏是DataGrid的主要代碼。
<Controls:DataGrid Grid.Row="0" SelectedItem="{Binding Path=CurrentSelectedItem, Mode=TwoWay}" AutoGenerateColumns="False" SelectionMode="Single">
<Controls:DataGrid.Columns>
<Controls:DataGridTemplateColumn>
<Controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Remove" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding Source={StaticResource cmdDeleteRecord}}" CommandParameter="{Binding Path=Attribute[ExtensionDataId].Value}" Margin="8,0,8,0" />
</DataTemplate>
</Controls:DataGridTemplateColumn.CellTemplate>
</Controls:DataGridTemplateColumn>
<Controls:DataGridTemplateColumn HeaderStyle="{StaticResource WrappedColumnHeaderStyle}" Header="Vendor" CanUserSort="True" ToolTipService.ToolTip="Vendor" SortMemberPath="VendorPrincipalId_Name-Reference" MaxWidth="250">
<Controls:DataGridTemplateColumn.ClipboardContentBinding>
<Binding Path="Attribute[VendorPrincipalId_Name].Value" Mode="TwoWay" />
</Controls:DataGridTemplateColumn.ClipboardContentBinding>
<Controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBox Style="{DynamicResource GridCellTemplateTextBox}" TextWrapping="Wrap">
<TextBox.Text>
<Binding Path="Attribute[VendorPrincipalId_Name].Value" Mode="TwoWay" />
</TextBox.Text>
</TextBox>
</StackPanel>
</DataTemplate>
</Controls:DataGridTemplateColumn.CellTemplate>
</Controls:DataGridTemplateColumn>
<Controls:DataGridTemplateColumn HeaderStyle="{StaticResource WrappedColumnHeaderStyle}" Header="Vendor's Key" CanUserSort="True" ToolTipService.ToolTip="Vendor's Key" SortMemberPath="Attribute[VendorKey].Value" MaxWidth="250">
<Controls:DataGridTemplateColumn.ClipboardContentBinding>
<Binding Path="Attribute[VendorKey].Value" />
</Controls:DataGridTemplateColumn.ClipboardContentBinding>
<Controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBox Style="{DynamicResource GridCellTemplateTextBox}" TextWrapping="Wrap">
<TextBox.Text>
<Binding Path="Attribute[VendorKey].Value" />
</TextBox.Text>
</TextBox>
</StackPanel>
</DataTemplate>
</Controls:DataGridTemplateColumn.CellTemplate>
</Controls:DataGridTemplateColumn>
</Controls:DataGrid.Columns>
</controls:DataGrid>
請說明你已經做了什麼,所以回答這個問題會更容易。 – Joulukuusi
我還有一個限制。我不能在這裏使用backgroud .cs文件,因爲有一些架構限制。 – techfun