我有一个ListBox使用以下DataTemplate显示项目:
<DataTemplate x:Key="PersonTemplate" DataType="{x:Type DAL:ResultItem}" >
<StackPanel Width="280" >
<TextBox BorderThickness="0" IsReadOnly="True" Background="Transparent" Text="{Binding FullName1, Mode=OneWay}"/>
...
</StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
我使用透明,只读,无边框TextBox而不是TextBlock,因为我希望用户能够选择要复制的文本.我应该采用不同的方式吗?我怎么写这个,这样当用户点击TextBox时,ListBoxItem也会被选中?
谢谢!
我有一个ListBox显示员工的数据,如姓名,部门照片,徽章编号等.员工可能有不同的类型,如经理,员工,志愿者.我有3个独立的数据模板 - 每种类型一个.所有这些模板显示的数据基本相同,但呈现的方式不同.
根据登录应用程序图片的用户,徽章编号等可以显示也可以不显示.所以我有布尔属性 - CanSeePhotos,CanSeeBadgeNumbers等.所以如果CanSeePhotos == false,所有数据模板都应该隐藏照片.
我的问题是,如何在我的数据模板中使用这些布尔属性来切换相应项目的可见性?当我从TemplateSelector返回参数时,有没有办法将参数传递给数据模板?
谢谢!
编辑:跟随雷的想法我最终做到了这一点:
Visibility="{Binding Source={x:Static local:Global.CanSeePhoto}, Converter={StaticResource BooleanToVisibilityConverter}}"
Run Code Online (Sandbox Code Playgroud) 没有代码手动创建控件 - 一切都是通过数据绑定完成的.
为什么我看到这种行为?我该怎么办才能修复它?请帮忙!
更新:我发现问题不是内存泄漏.这里的问题是列表框正在创建对象以显示员工的图像,并且在listboxitem离开窗口后不会为垃圾收集器发布.CleanUpVirtualizedItem事件按我的预期发生,但内存仍未释放.有任何想法吗?
在所有的方法应该评估对列表中的所有元素的说法.它在常规Linq中运行正常,但是当我尝试将它与EF一起使用时,它会抛出一个错误(" 无法创建类型为'闭包类型'的常量值.此处仅支持基本类型(例如Int32,String和Guid)上下文. ")
例:
var myList = from person in entities.People
where searchList.All(arg => arg == arg).ToList();
Run Code Online (Sandbox Code Playgroud)
(arg == arg这里只是为了说明我的问题)
在我的场景中,searchList是包含搜索项的列表,例如"John","Accounting","75".在我的EF查询中,我想检索人员中的所有记录,其中John,Accounting和75出现在某些指定的可搜索字段中.一个更现实的例子是这样的:
where SearchList.All((person.FirstName + " " + person.LastName + " " + person.DepartmentName + " " + person.Phone).Contains)
Run Code Online (Sandbox Code Playgroud)
第二个例子在内存中也适用于Linq,但EF不喜欢它.
请帮忙!我能做些什么才能让它发挥作用?
这是一个来自我的另一个问题的更具体的问题.
IEnumerable<string> searchList = ParseSearchText(searchText); //search text is broken into search tokens - each token is an element in searchList. For instance "John", "Sales", "654"
var peopleQuery = from person in entities.vSearchPeople
where …Run Code Online (Sandbox Code Playgroud) 我是SSRS的新手,请原谅我的新手.我正在使用Sql Server 2008,我想从报表中多列的表中显示1个单个字段.就像我打印标签一样.我怎样才能做到这一点?
示例:
而不是打印:
Andrea
Austin
Barbara
Bob
Bruno
Cathy
Chis
...
我想在列中打印(比如3个固定列):
Andrea ---- Bruno ---- Darren
Austin ---- Cathy ---- Francis
Barbara ---- Chis ---- Gabriel
Bob ---- David ---- Gerald
...... .---- ....... ---- .......
编辑:如果我运行报告并单击"打印布局"按钮,我可以看到多个列.我可以将此模式设置为默认模式吗?
我将App.xaml的构建操作更改为"页面",因此我可以处理启动画面并确保我的应用程序仅作为单个实例运行(具有我自己的入口点).它在运行时工作正常,但在设计时,应用程序无法再查看我的资源.资源位于同一项目中的单独xaml文件中.如何让我的应用再次在设计时看到资源?
谢谢
我有一个WPF应用程序,其中的连接字符串存储在App.config中.在一次点击部署中加密这些连接字符串的最佳方法是什么?
谢谢
我需要完成的是一个显示People的ComboBox.当您展开下拉列表时,它会显示FirstName和LastName,但是当您选择一个人时,组合框中显示的值应该只是该人的名字.
我有以下ItemTemplate:
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding FirstName}" />
<TextBlock Text=" " />
<TextBlock Text="{Binding LastName}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
当选择一个项目时,我还应该做什么才能显示第一个名字?
谢谢!
稍微改变了一个问题:如果我有人的照片而不是在选择一个人时只显示第一个名字怎么办,我只想显示照片.换句话说,我怎样才能有两个单独的模板 - 一个用于下拉列表,另一个用于所选项目?
我需要将我在内存中创建的pdf附加到电子邮件中.附件可以采取流程.所以我认为我需要将iTextSharp Document对象转换为流.我怎样才能做到这一点?我尝试将Document对象序列化为流,但它没有"标记为可序列化".
我有这样的东西:
scaleTransform.BeginAnimation(ScaleTransform.ScaleXProperty, shrinkAnimation);
scaleTransform.BeginAnimation(ScaleTransform.ScaleYProperty, shrinkAnimation);
MyDialog.Show();
Run Code Online (Sandbox Code Playgroud)
动画并行正确运行(x和y缩小在一起),但由于BeginAnimation是异步调用,因此Show()在动画仍在运行时执行该方法(假设shrinkAnimation运行1秒).
在打电话之前,我该如何等待动画完成Show()?
谢谢!
wpf ×7
c# ×2
datatemplate ×2
listbox ×2
.net ×1
animation ×1
clickonce ×1
combobox ×1
data-binding ×1
encryption ×1
itext ×1
linq ×1
pdf ×1
performance ×1
resources ×1
selection ×1
stream ×1
synchronous ×1
textbox ×1