0
我目前正在重構一些使用C#編寫在WPF之上的舊代碼。WPF數據綁定複雜對象模型
我現在有一個看起來像這樣的複合用戶模型:
public class UserModel{
public User User {get; set;}
public List<Guid> Permissions {get; set;}
}
在這個模型中,權限列表授予由模型所引用的用戶權限ID的列表。
在我的用戶管理界面的xaml中,我列出了綁定到組合框的這些模型,當選擇更改時,所選項綁定到包含用戶屬性和項目控件的文本框的網格。
當頁面加載時,這些項目控件被填充了系統中所有權限綁定的複選框。我的問題是什麼是將權限列表綁定到項目控件中複選框的最佳方式?
的項目控件的代碼看起來是這樣的:
<ScrollViewer Grid.Row="7" Grid.Column="1">
<ItemsControl ItemsSource={Binding}>
<ItemsControl.ItemsTemplate>
<DataTemplate>
<Checkbox Content="{Binding Description}" IsChecked="{Binding IsSelected}"/>
</DataTemplate>
</ItemsControl.ItemsTemplate>
</ScrollViewer>
和權限的集合是此對象的名單:
class SelectedPermission{
public Guid PermissionId {get; set;}
public string Description {get; set;}
public bool IsSelected {get; set;}
}
我最初的想法是要落實在INotifyPropertyChanged的SelectedPermission集合,當我綁定我的用戶時,只需將IsSelected設置爲true,以獲取授予選定用戶的任何權限。但似乎應該有更好的方法。
我會給出一個答案,我只是想,有可能比迭代DataContext更容易將IsSelected綁定到用戶權限列表。 – Philter 2013-02-20 14:40:55
你可以使用LinQ。 – 2013-02-20 14:43:02
是的,但我認爲可能有一種方法可以在Xaml中實現。 – Philter 2013-02-20 14:48:47