我希望能夠從wpf Datagrid內的組合框中選擇「true」或「false」(布爾值),並且能夠將該選項保存到我的數據庫中。如何使用MVVM顯示和選擇具有WPF C#的Datagrid組合框中的項目使用MVVM
我希望能夠通過保存到我的數據庫的布爾變量(1 = true; 0 = false)來指示行內是否爲「活動」。
這裏是我創建表的語句: Create Table Statement(AccountType)
我填充使用一個ObservableCollection數據網格如下:
protected override void Get()
{
using (var dbContext = new IEMASEntitiesDataContext())
{
var accountType = from s in dbContext.AccountTypes select s;
var observable = new ObservableCollection<AccountType>(accountType);
Collection = observable;
}
}
我的XAML代碼如下:
<DockPanel DataContext="{StaticResource ResourceKey=AccountTypeViewModel}" LastChildFill="True">
<ToolBar DockPanel.Dock="Top">
<Button Content="Display" Command="{Binding GetCommand}" Width="78"/>
<Button Content="Save" Command="{Binding SaveCommand}" Width="78"/>
</ToolBar>
<Grid>
<GroupBox x:Name="AccountTypeGroupBox">
<DataGrid x:Name="DataGridAccountType" ItemsSource="{Binding Collection}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="AccountType" Width="150" Binding="{Binding Path=AccountTypeName, Mode=TwoWay, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridComboBoxColumn Header="Active" Width="100" SelectedValueBinding="{Binding StatusList, UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="AccountTypeId" DisplayMemberPath="Active"/>
<DataGridTemplateColumn Width="50" Header="Delete">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button x:Name="btnDelete" Content="Delete" Command="{Binding DeleteCommand}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</GroupBox>
</Grid>
</DockPanel>
一點也沒有沒有工作。沒有任何內容顯示在組合框中,我不知道如何在顯示時將選定項目保存到SQL Server數據庫。我希望得到一些幫助。我正在使用LINQ TO SQL。我是一個新手:-(。
是您ACCOUNTTYPE實現了INotifyPropertyChanged的上綁定化子性質? DataGrid ItemsSource集合中有數據嗎? – Ilan
嗨。是的,我在我的CommandBase類中實現了INotifyPropertyChanged。我確實有虛擬數據,除了ComboBox之外,它顯示在所有其他列中。我的Commandbase是一個接口類,並被所有ViewModel使用。 Collection Itemsource是一個Observable集合。 – Newbie101
這裏沒有Combo ItemsSource綁定。你是否在代碼背後設置了它? – Ilan