C# ListView项目资源绑定
我有一个包含3列的列表视图:C# ListView项目资源绑定,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我有一个包含3列的列表视图: <ListView ItemsSource="{Binding ParamName}" HorizontalAlignment="Left" Height="109" Margin="10,87,0,0" VerticalAlignment="Top" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Width="281"> <ListView.View> &
<ListView ItemsSource="{Binding ParamName}" HorizontalAlignment="Left" Height="109" Margin="10,87,0,0" VerticalAlignment="Top" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Width="281">
<ListView.View>
<GridView>
<GridView.ColumnHeaderContainerStyle>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="TextElement.Foreground" Value="Black"/>
</Trigger>
</Style.Triggers>
</Style>
</GridView.ColumnHeaderContainerStyle>
<GridViewColumn Header="Name" Width="60"/>
<GridViewColumn Header="Type" Width="60"/>
<GridViewColumn Header="Content" Width="156"/>
</GridView>
</ListView.View>
</ListView>
目前,我已将ParamName
设置为我的ItemsSource,这样显然无法达到预期的效果
在我的ViewModel中,每个列都有可观察的集合(ParamName
表示名称,ParamType
表示类型,ParamContent
表示内容)。这些ObservableCollection已正确填充,我可以通过绑定接收它们的数据,但我无法用它们各自的数据填充列
我想到了一些可能的解决办法,但似乎没有一个奏效。解决这个问题的最佳方法是什么
下面是它的外观(左)和应该的外观(右):
按类型命名可能有点混乱。您有三个集合,但只有一个是绑定的。所以所有列都有相同的值。 尝试创建一个包含所有所需内容的集合:
ObservableCollection<MyRow>
observedcollection
其中MyRow
是具有所需属性的类或结构
如果您已经有了这些集合-尝试将其连接到一个主要集合,并告诉GridColumns您希望绑定到每个列的属性,但我不确定是否可以使用ObservableCollections-如果它们的长度不同怎么办
您仍然可以从这三个集合中创建自己的集合-只需解析它…您有三个集合,但只有一个是绑定的。所以所有列都有相同的值。 尝试创建一个包含所有所需内容的集合:
ObservableCollection<MyRow>
observedcollection
其中MyRow
是具有所需属性的类或结构
如果您已经有了这些集合-尝试将其连接到一个主要集合,并告诉GridColumns您希望绑定到每个列的属性,但我不确定是否可以使用ObservableCollections-如果它们的长度不同怎么办
您仍然可以从这三个集合中创建自己的集合-只需解析它…您有三(3)个集合吗?为什么?据我所知,您只绑定了一个集合,而所有树列都有相同的值?尝试更改参数名,看看是否如此。如果我的建议是正确的,那么尝试创建一个复杂类型的集合,其中包含所有值:ObservableCollection,其中MyRow是一个具有所需属性的类。@Shwed_Berlin是的,这就是我的问题所在。我有3个不同的集合,我希望将一个集合绑定到每个列。请尝试创建一个复杂类型的集合,其中包含所有值:ObservableCollection,其中MyRow是一个具有所需属性的类。P.S.抱歉,编辑我的评论时遇到问题:)@Shwed_Berlin鉴于我有这个集合,数据如何正确地显示在列表视图中?请阅读我的回答您有三(3)个集合吗?为什么?据我所知,您只绑定了一个集合,而所有树列都有相同的值?尝试更改参数名,看看是否如此。如果我的建议是正确的,那么尝试创建一个复杂类型的集合,其中包含所有值:ObservableCollection,其中MyRow是一个具有所需属性的类。@Shwed_Berlin是的,这就是我的问题所在。我有3个不同的集合,我希望将一个集合绑定到每个列。请尝试创建一个复杂类型的集合,其中包含所有值:ObservableCollection,其中MyRow是一个具有所需属性的类。另外,很抱歉,编辑我的评论时遇到问题:)@Shwed_Berlin鉴于我有此收集,如何在ListView中正确显示数据?请阅读我的答案