0
嗨新的WPF程序員在這裏。我似乎無法得到這個工作,我希望也許你有一些想法。當我在用戶定義表(ListBox)中選擇一個項目時,我希望它將數據(ObservableCollection)填充到我的數據網格中。然後我將使用下面的插入編輯保存按鈕進行編輯。用戶定義表(ListBox)中的每個項目都有多個選項和說明。將ListBox選定項目數據綁定到DataGrid的最佳方法WPF
我有一個XAML看起來像這樣:
<Grid HorizontalAlignment="Left" Height="505" VerticalAlignment="Top" Width="805">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="210*"/>
<ColumnDefinition Width="233*"/>
<ColumnDefinition Width="315*"/>
<ColumnDefinition Width="47*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="33*"/>
<RowDefinition Height="217*"/>
<RowDefinition Height="86*"/>
<RowDefinition Height="89*"/>
<RowDefinition Height="81*"/>
</Grid.RowDefinitions>
<ListBox x:Name="_listbox" HorizontalAlignment="Left" Height="103" VerticalAlignment="Top" Width="210" Margin="0,1,0,0" Grid.Row="1">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="IsSelected" Value="{Binding Selected}"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem Content="ARNotes" />
<ListBoxItem Content="Item2"/>
<ListBoxItem Content="Item3"/>
<ListBoxItem Content="Item4"/>
<ListBoxItem Content="Item5"/>
<ListBoxItem Content="Item6"/>
</ListBox>
<ComboBox HorizontalAlignment="Left" Height="30" Margin="4,0,0,0" VerticalAlignment="Top" Width="257" Grid.Column="2">
<ComboBoxItem Content="FromCompanyTable"/>
</ComboBox>
<DataGrid x:Name="_grid" ItemsSource="{Binding SelectedItem, ElementName=_listbox}" AutoGenerateColumns="False" Grid.ColumnSpan="2" Grid.Column="1" Margin="24,2,0,3" Grid.Row="1" >
<DataGrid.Columns>
<DataGridTextColumn x:Name="Choice" Width="*" Header="Choice" Binding="{Binding choice}"/>
<DataGridTextColumn x:Name="Descip" Width="*" Header="Description" Binding="{Binding description}"/>
</DataGrid.Columns>
</DataGrid>
而且我的模型:
public class NoteList : ObservableCollection<ARNotes>
{
public NoteList() : base()
{
Add(new ARNotes("A", "Adjustment"));
Add(new ARNotes("C", "Changed"));
Add(new ARNotes("D", "Notes"));
Add(new ARNotes("G", "Information"));
}
}
public class ARNotes
{
private string choice;
private string description;
public ARNotes(string choice, string description)
{
this.choice = choice;
this.description = description;
}
public string Choice
{
get { return choice; }
set { choice = value; }
}
public string Description
{
get { return description; }
set { description = value; }
}
}
您的'_listbox'沒有對象項,因爲您爲每個項目設置了字面上的「內容」。 – dytori