我有一个ListView,填充了ItemsSource,指向登录历史列表,这样我就可以选择以前成功的登录,而不必输入用户,主机等。这似乎工作正常,但由于某种原因,现在数据绑定工作正常,但控件中的项目是不可见的。我可以告诉控件正在正确填充,因为项目的“鬼”可用并在我鼠标悬停时突出显示,正如我的ItemsSource中的正确数字,并且它们被正确绑定 - 例如,如果我的ItemsSource具有LoginA,LoginQ,和LoginZ并点击第二个'隐形'项,LoginQ发生。我已经尝试搞乱不透明度,改变了ItemsSource绑定的位置(登录对话框出现之前/之后等)。没有快乐。与较旧的工作版本相比,我看不到任何看似相关的内容。提示,建议和嘘声欢迎.....
答案 0 :(得分:1)
听起来列表项类型中的属性要么不是实际属性(它们可能是公共字段,而是您无法绑定到它们),或者它们的值会在代码中稍后更改而您尚未实现{{3通知XAML绑定引擎它们的值已更新。
答案 1 :(得分:1)
public string foo;
我之前将字段定义为:
public string foo {get;组; } 强>
但在我遇到一些可访问性问题时更改了它们,并且从未更改过它们。得到{得到;组; } defined允许它们再次对数据绑定可见。 肯(我是OP,但不知何故,这个问题最初是作为'新用户'发布的,所以我认为我不能将这些问题标记为已回答)。
答案 2 :(得分:1)
我有同样的问题,问题出在绑定中,在xaml文件中。
<GridViewColumn Header="Category" Width="Auto" DisplayMemberBinding="{Binding yourVariable}"/>
我更改了后面代码中的一些行(xaml.cs),但没有在xaml中,所以绑定无法正常工作(xaml.cs中的listView已填充,但WPF没有我不知道如何将它们放在xaml中的ListView中。
当我在xaml中修复它时,ListView中的行变为可见。
答案 3 :(得分:0)
这是我的ItemsSource:List的类,以及引用它的XAML。 ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++ 公共类LoginHistory { 公共字符串用户; 公共字符串主机; 公共字符串公司; 等等等等等等......... }
+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++
<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>