我有一个ListView,填充ItemsSource指向登录历史列表,以便我可以选择以前成功登录而不必键入用户,主机等。这似乎工作正常,但由于某种原因,现在数据绑定工作正常,但控件中的项目是不可见的。我可以告诉控件正在正确填充,因为项目的“鬼魂”是可用的,并突出显示当我把它们鼠标悬停在正确的数量,如我的ItemsSource,并且他们被正确绑定 - 例如,如果我的ItemsSource有LoginA,LoginQ,和LoginZ并点击第二个'隐形'项目,LoginQ发生。我试着弄乱了不透明度,改变了ItemsSource绑定的位置(在登录对话框出现之后/之前等)。没有喜乐。与旧版工作版本相比,我看不到任何看似相关的东西。提示,建议和嘘声欢迎.....WPF ListView控件被填充,但不可见
回答
这听起来像你的列表项目类型属性或者不是实际属性(它们可能是公共字段,而不是绑定),或他们的值更改稍后在您的代码中,您尚未实施INotifyPropertyChanged以通知XAML绑定引擎其值已更新。
这是我的ItemsSource:List的类,以及引用它的XAML。 +++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++ public class LoginHistory { public string user; 公共字符串主机; 公共字符串公司; 等等,等等,等等......... }
+++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++
<Border Name="mask" Opacity="0.8" Background="White" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" CornerRadius="0,0,0,10"/>
<ListView Background="White" BorderThickness="0" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
IsSynchronizedWithCurrentItem="True" HorizontalAlignment="Stretch"
x:Name="HistoryListView" VerticalAlignment="Stretch" Width="Auto"
Height="Auto" FontSize="14" SelectionMode="Single"
SelectionChanged="HistoryListView_SelectionChanged">
<ListView.OpacityMask>
<VisualBrush Visual="{Binding ElementName=mask}"/>
</ListView.OpacityMask>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Height" Value="40"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<!--
<GridView ColumnHeaderTemplate="{StaticResource HeaderTemplateNoArrow}" AllowsColumnReorder="True">
-->
用户
<GridViewColumn DisplayMemberBinding="{Binding Path=company}">
<GridViewColumnHeader>Company</GridViewColumnHeader>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=host}">
<GridViewColumnHeader>Host</GridViewColumnHeader>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
<Border BorderThickness="1" Margin="0" BorderBrush="Gray" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" CornerRadius="0,0,0,10">
</Border>
正如我的回答所述,看起来你正在使用公共领域,而不是属性。你不能绑定到字段。通过添加getters和setter来将您的字段更改为属性。 – devdigital 2011-04-17 20:14:06
devdigital的回答帮我找到的问题;我试图绑定到我的LoginHistory类中定义为:
public string foo;
我之前已经定义字段:
公共字符串FOO {获得;组; }
但改变了他们,当我遇到一些问题,并且从未改变他们回来。有{get;组; }定义允许它们再次对数据绑定可见。 Ken(我是OP,但不知怎的,这个问题最初是作为'新用户'发布的,所以我不认为我可以将它们标记为已回答)。
我有同样的问题,并在xaml文件中的绑定问题。
<GridViewColumn Header="Category" Width="Auto" DisplayMemberBinding="{Binding yourVariable}"/>
我已经改变了在后面的代码(xaml.cs),但不是在XAML一些线路,所以结合而不能正常工作(在xaml.cs ListView中被填充,但WPF没”不知道如何将它们放入xaml的ListView中)。
当我在xaml中修复该问题时,ListView中的行变为可见。
- 1. listview填充不正确/不可见
- 2. WPF - 填充ListView
- 3. Wpf Listview不填充sqlite
- 4. WPF的ListView填充
- 5. ListView未填充,但getView()被调用
- 6. 当适配器被填充时,Android ListView变得可见
- 7. WPF UserControl填充控件
- 8. ListView不填充
- 9. Android listview没有被填充
- 10. listView没有被填充?
- 11. 的Android的ListView不被填充
- 12. WPF控件可见性
- 13. WPF自定义控件不可见
- 14. WPF TreeView没有被填充
- 15. Android的 - 填充的ListView控件
- 16. 填充ListView控件与动态数组
- 17. 添加填充ListView控件内与线
- 18. 文件被创建,但不可见
- 19. WPF ListView动态添加列不可见
- 20. android listview不填充
- 21. WPF ListView控件
- 22. WPF有控件填充整行
- 23. 在WPF用户控件中填充Datagrid
- 24. ListView不可见
- 25. 填充在div块内不可见?
- 26. 删除导航栏(不可见)填充
- 27. 动态填充WPF中的ListView
- 28. ArrayList和ListView没有被填充
- 29. 从XML文件填充ListView
- 30. JButton补充说,但不可见
你可以发布listview的xaml吗? – 2011-04-12 00:12:10