我正在使用ComboBox超過2天,但沒有找到解決方案。Combobox沒有顯示任何項目,但是當我選擇任何項目時,我收到一些數據
在我的一個問題中,名爲JnJnBoo的用戶試圖回答我的問題,並從那裏獲得了一些知識和代碼。
我想在使用MVVM模式的多列中的組合框中顯示一些數據。 我正在使用實體框架和SQL Server數據庫。
下面是代碼:
namespace ERP_Lite_Trial.ViewModels
{
public class GroupsViewModel : INotifyPropertyChanged
{
public GroupsViewModel()
{
using (DBEntities db = new DBEntities())
{
GroupsAndCorrespondingEffects = (from g in db.Groups
select new GroupAndCorrespondingEffect
{
GroupName = g.Name,
CorrespondingEffect = g.Type_Effect.Name
}
).ToList();
EffectName = (from e in db.Type_Effect
select e.Name).ToList();
}
}
private List<GroupAndCorrespondingEffect> _groupsAndCorrespondingEffects;
public List<GroupAndCorrespondingEffect> GroupsAndCorrespondingEffects
{
get
{
return _groupsAndCorrespondingEffects;
}
set
{
_groupsAndCorrespondingEffects = value;
OnPropertyChanged("GroupsAndCorrespondingEffects");
}
}
private string _selectedGroup;
public string SelectedGroup
{
get
{
return _selectedGroup;
}
set
{
_selectedGroup = value;
OnPropertyChanged("SelectedGroup");
}
}
private List<string> _effectName;
public List<string> EffectName
{
get
{
return _effectName;
}
set
{
_effectName = value;
OnPropertyChanged("EffectName");
}
}
public void OnPropertyChanged(string PropertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
public class GroupAndCorrespondingEffect
{
public string GroupName;
public string CorrespondingEffect;
}
}
而XAML:
<ComboBox x:Name="cbUnder" ItemsSource="{Binding Path=GroupsAndCorrespondingEffects}"
IsEditable="True" SelectedItem="{Binding Path=SelectedGroup, Mode=TwoWay}"
TextSearch.TextPath="GroupName" Grid.Column="1" Grid.ColumnSpan="4" Grid.Row="3">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=GroupName}"/>
<TextBlock Text="{Binding Path=CorrespondingEffects}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我試過很多東西,但總是不成功。
我的Combobox沒有在其項目中顯示任何數據,但當我選擇組合框中的任何項目時,我在selectedGroup屬性中獲取了一些數據。數據是namespace.classname
所以我想我需要重寫GroupAndCorrespondingEffect類的Tostring方法。但它有兩個屬性。 XAML中的數據綁定以哪種格式預期我不知道的數據。那麼,如何重寫tostring方法?或者可能是我在我的代碼中犯了某種錯誤?
而是多種答案的,你可以編輯了自己的答案。 –