我之前已經閱讀了很多文章來問這個問題,但最後我決定寫在這裏,因爲我無法找到適合我的解決方案的文章。Caliburn.micro DataGridComboBoxColumn not binding
我有以下幾點上查看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'。 – UIlrvnd
好的不好意思,我會盡力做得更好:我將UserModels的集合綁定到DataGrid中。每個UserModel的屬性之一是語言。我想要用帶有不同值的組合框來更改綁定屬性「語言」的列的單元格。之後,INPC將發起變革。 –
是的,我在發帖後注意到它,雖然它仍然不起作用,謝謝! –