【发布时间】:2013-10-24 14:59:42
【问题描述】:
我之前已经阅读了很多文章来问这个问题,但最后我决定在这里写,因为我无法找到适合我的解决方案的文章。
我在视图上有以下DataGrid:
<DataGrid x:Name="UsersCollection" CanUserAddRows="False" CanUserDeleteRows="False" AutoGenerateColumns="False" HorizontalAlignment="Center" VerticalAlignment="Top" Height="525" Width="510" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Canvas.Left="147" Canvas.Top="26" Margin="0">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Username, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<DataGridTextColumn Binding="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<DataGridComboBoxColumn x:Name="Languages" />
</DataGrid.Columns>
这是我的 ViewModel 的一部分:
private List<string> _languages;
[ImportingConstructor]
public UsersViewModel()
{
DisplayName = "Users";
_usersCollection = new TrulyObservableCollection<UserModel>();
foreach (UserModel user in GetAllUsers())
_usersCollection.Add(user);
_usersCollection.CollectionChanged += Users_CollectionChanged;
_usersCollection.ItemPropertyChanged += PropertyChangedHandler;
_languages = new List<string>();
_languages.Add("es");
_languages.Add("ca");
_languages.Add("en");
}
public List<string> Languages
{
get { return _languages; }
}
我的 UserModel 有这个属性:
public string Language
{
get { return _language; }
set
{
if (_language != value)
{
_language = value;
NotifyOfPropertyChange(() => Language);
}
}
}
如何绑定DataGrid组合(当然,与UserModel的Language属性有关)?提前致谢!
【问题讨论】:
-
这有点令人困惑,如果我理解正确的话,您想将
SelectedItem绑定到Language属性,并将ItemsSource绑定到Languages。 -
好吧,抱歉,我会尝试做得更好:我将一组 UserModels 绑定到一个 DataGrid 中。每个 UserModel 的属性之一是 Language。我想可以更改将属性“语言”绑定到具有不同值的组合框的列的单元格。之后,INPC 将触发更改。
-
是的,我发帖后注意到了,虽然还是不行,谢谢!
标签: c# wpf mvvm datagrid caliburn.micro