【发布时间】:2011-03-22 17:13:15
【问题描述】:
类似这样的:
public class EffectViewModel
{
public string Name ...
ObservableCollection<KeyValuePair<int,object>> settings
public ObservableCollection<KeyValuePair<int,object>> Settings
{
get {return this.settings;}
set
{
this.settings = value;
this.RaisePropertyChanged ( "Settings" );
}
}
}
现在我正在尝试像这样绑定它:
EffectWindowViewModel.Effects 的类型为 ObservableCollection<EffectViewModel>。
<ListView Width="1000"
Height="600"
ItemsSource="{Binding EffectWindowViewModel.Effects}">
<ListView.View>
<GridView>
<GridViewColumn Width="Auto"
DisplayMemberBinding="{Binding Key}"
Header="Name" />
<GridViewColumn Width="Auto"
DisplayMemberBinding="{Binding Value}"
Header="Value" />
</GridView>
</ListView.View>
</ListView>
但我不知道如何指定.Settings 属性。
有什么想法吗?
【问题讨论】:
-
我看不出
ObservableCollection<KeyValuePair<int,object>>比ObservableCollection<Tuple<int,object>>有什么优势。解决方案应该大致相同。 -
它没有。在这种情况下,我没有想到使用 Tuple。但请随意。我只是不知道在那种情况下我会如何绑定。
-
而且设置是效果的兄弟,所以这看起来行不通。
-
为什么?所以不能数据绑定?
-
检查您的输出窗口是否有绑定错误。顺便说一句,绑定不应该是:ItemsSource="{Binding Settings}"?导致它是您的财产的名称。并且您的 dataconext 或列表视图的源应该是 EffectViewModel 的实例
标签: c# .net wpf xaml data-binding