我正在尝试将TextBlockListView的ItemTemplate中的Visibility属性绑定到TextBlock的父ListViewItem的IsSelected属性.
使用此标记,TextBlock始终可见.
<ListView x:Name="ItemListView" ItemsSource="{Binding Path=Accounts}" Margin="60,0,0,10" Grid.Row="1" Grid.Column="0">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100">
</ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="200"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Image Width="100" Height="100" Grid.Column="0"></Image>
<StackPanel Grid.Column="1">
<TextBlock Text="{Binding Path=Account.Name}"
FontSize="24" Margin="5,0,0,0" TextWrapping="Wrap" />
</StackPanel>
<TextBlock Grid.Column="3" VerticalAlignment="Bottom"
Visibility="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=IsSelected, Converter={StaticResource boolConverter}, Mode=OneWay}">
Show More Details...
</TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
注意:1.如果有任何不同,这是WinRT; 用C#编写的Metro应用程序.2. boolConverter是一个相当标准的转换器似乎正常工作.
当Dispatcher.RunAsync工作安排时,等待继续发生时,而不是工作完成时.我怎么能等待完成的工作?
编辑
我的原始问题假设过早延续是由API的设计引起的,所以这是真正的问题.
等待Dispatcher.RunAsync使用异步委托时,await在委托代码中使用,会在await遇到时继续,而不是在工作完成时.我怎么能等待完成的工作?
编辑2
您可能需要分派已经在UI线程上工作的一个原因是解决细微的时序和布局问题.对于可视化树中的元素的大小和位置的值来说,通常是非常常见的,并且用于稍后的UI迭代的调度工作可以帮助.
我让IT部门使用以下命令在CentOS上安装Mono:
$yum install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2-devel libgdi* libexif glibc-devel urw-fonts java unzip gcc gcc-c++ automake autoconf libtool make bzip2 wget
$cd /usr/local/src
$wget http://download.mono-project.com/sources/mono/mono-3.2.5.tar.bz2
$tar jxf mono-3.2.5.tar.bz2
$cd mono-3.2.5
$./configure --prefix=/opt/mono
$make && make install
Run Code Online (Sandbox Code Playgroud)
但是,当我跑步时,mono myapp.exe我得到了
-bash: mono: command not found
Run Code Online (Sandbox Code Playgroud)
我对Linux一无所知 - 我觉得我在日本.假设Linux有一个路径变量或类似的东西,也许单声道不在路径中?
我甚至找不到一个名为monoin 的可执行文件/usr/local/src,只是一个mono文件夹.请注意,我无法弄清楚如何搜索文件,所以我可能看不太正常.
如何判断其安装是否正确?也许它不适用于我使用的非管理员帐户?
我迷路了.救命!
通常情况下,我会在'distrib'程序集中放置我认为的宪法根资源,例如品牌颜色/画笔,字体和大小.
Distrib程序集旨在指向第三方开发商店,因此他们可以访问我们的合同,界面和品牌风格.
然后建立更复杂的资源,并在它们被使用的地方宣布"更近".
我来到了一个有机,错误,随意增长的应用程序.奇怪的是,模块使用主应用程序可执行项目中的资源,即使模块没有引用应用程序.
我假设因为他们将所有资源"导入"到App.xaml中,所以它们可用于伪造的运行时设计器上下文.
我的问题是
如果这就是MS设计它的工作原理,那么我是否一直在通过像管理类型系统那样管理资源而做错了?
谢谢
卢克
**更新**
因此,有人向我指出,由于严重的性能问题,组织良好的资源不是WPF的方式(就像我在一个大型SL4应用程序中找到的那样,但我认为它是SL的东西).
假设以这种高度组织的方式管理资源仍然可以通过一两个技巧完成,并且模块化系统通常需要合并字典,我开始研究使用Christian Moser的SharedResourceDictionary解决方案,但我在设计时遇到问题:
System.IO.Packaging.PackUriHelper
The URI prefix is not recognized.
at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase)
at System.Net.WebRequest.Create(Uri requestUri)
at MS.Internal.WpfWebRequestHelper.CreateRequest(Uri uri)
at System.Windows.ResourceDictionary.set_Source(Uri value)
at CompanyName.Presentation.SharedResourceDictionary.set_Source(Uri value)
Run Code Online (Sandbox Code Playgroud)
看起来它不理解包Uris,这是奇怪的,因为SharedResourceDictionary只调用ResourceDictionary中的原始MS实现,并且静态注册包URI方案也无济于事!! 哎呀.
所以我需要破解,第二个选项是将所有内容粉碎到App.xaml中并避免合并的字典.
这意味着更少的控件/视图,并在我的可分发库中设置一个设计时字典,我猜他们无法访问app.xaml的工作.
我认为这是有道理的.
有趣?告诉微软
它可能适用于Silverlight,但我希望WPF人员可能正在倾听,或者至少它可能会修复一个平台 - 我已经向UserVoice网站添加了一个"想法",您可以投票.
在VS2012.2中,我有一个针对.NET 4.5的一周的ASP.NET MVC 4应用程序,如果我使用该async关键字,则按预期工作.
在同一时间创建的类库项目中,以4.5为目标,我无法使用该async关键字.
所以我创建了一个新的ASP.NET MVC 4(4.5)Web应用程序项目,我再也无法使用 async
找不到类型或命名空间名称"async"
这是我觉得我在做一些完全愚蠢的事情的问题之一.毕竟,我在勒芒观看比赛并整个周末喝酒.
我的意思是,它应该适用于任何.NET 4.5项目吗?它是一个编译器功能.
我刚刚发现TeamCity在Windows上运行在32位JVM上,出于某种原因.
我在看到一个大的(不是那么大的)Git仓库并且已经处于JVM的最大堆大小时,看到了内存错误.我对Java或JVM或TomCat一无所知.
如何在现代的64位JVM上运行TeamCity?我觉得它会很痛苦,否则就会失败.
我们是一个很小的团队,如果某些东西没有苹果级别的'它只是有效',那么我们跳过它.
我们可以忍受这个不在CI服务器上的项目,但是知道所涉及的内容并权衡投资会很好.
任何建议表示赞赏
编辑
好吧,马库斯指出了这个片段(我已经读过),但我看不到有任何信息可以解释该怎么做.
使用64位Java运行TeamCity Server TeamCity可以在32位和64位JVM下运行.建议使用32位JVM,除非您需要为TeamCity进程提供超过1.3Gb的内存.
如果您选择使用x64 JVM,请注意当从32位JVM切换到64位JVM时,内存使用率几乎翻倍,因此请确保至少指定两倍于32位JVM的内存,请参阅为TeamCity设置内存设置服务器.
如果将TeamCity作为服务运行并切换到x64位,则还需要使用x64 Tomcat可执行文件,请参阅更多信息.
我错过了什么?
编辑2
啊,好吧,埋在上面这段链接的一些段落是这样的:
"如果您作为Windows服务运行并希望将JRE升级到64位版本,则需要使用适当的JRE替换\ jre"
所以我想我需要将一些文件复制到/ jre文件夹中?
我在大多数设备上使用TTF和OTF网络字体来捕获所有主流浏览器(FireFox,Chrome和IE11).在重定位到生产服务器然后IE不想显示我的图标之前,它看起来都很好.
我想,雷德蒙德的大脑有一些功能可以阻止它在互联网上工作,所以它只能从localhost工作.
这是什么交易?我需要为IE使用哪种字体?
我花了几天时间试图模仿,存根并假冒我的方式进入可测试的应用程序.我通常不测试控制器操作,而是测试我所有的其他类和模式.
我点击的墙是新的属性路由功能.虽然我可以使用路由类来注册我的规则等.我在MapMvcAttributeRoutes调用时会收到此错误.
在应用程序的预启动初始化阶段期间无法调用此方法
这在这里讨论.
MapMvcAttributeRoutes:在应用程序的启动前初始化阶段,无法调用此方法
说实话,我无法理解答案.不是代码,而是碎片化为版本,链接到其他错误,GitHub等.
关于底线答案,我有点迷茫:
截至2014年10月23日.是否可以在测试条件下注册所有路由,我需要什么版本的MVC以及我要调用哪些类/方法?
目前,我的课程使用UrlHelper正在搞砸,因为缺少必要的路线.我正在注入子类以绕过这个问题,但我认为假冒运行时MVC环境并让我的应用程序在没有大量DI杂技的情况下运行是不合理的.
如果这些是框架本身中的一个简单帮助器,可以采用描述原始HTTP请求的JSON对象,并且控制器,HttpContext,ControllerContext等等都可以正确创建,就像它是一个真正的请求一样,这将是很好的. .
谢谢,
卢克
Bootstrap已经使用默认模板中的新ASP.NET项目进行设置,但我想使用SASS版本的Bootstrap,以便我可以自定义它,例如更改字体变量.
我该如何设置?我需要一样的工具npm,Bower和Grunt?我有点迷茫.
我有这么简单的代码:
var entry = new DirectoryEntry("WinNT://DOMAIN/MachineName, Computer");
Console.WriteLine(entry.Guid);
Run Code Online (Sandbox Code Playgroud)
实际上,路径由命令行提供.编译这个简单的控制台应用程序用于测试,在我的测试中,我发现:
未处理的异常:System.IO.FileNotFoundException:找不到网络路径.
在System.DirectoryServices.Interop.UnsafeServices.DirectoryEntry.RefreshCache()的System.DirectoryServices.Interop.UnsafeNativeMethods.IAds.GetInfo()处于System.DirectoryServices.DirectoryEntry.FillCache(String propertyName)的System.DirectoryServices.DirectoryEntry.get_NativeGuid()处于System.DirectoryServices D:\ GetDirectoryEntryProperties\Program.cs中的GetDirectoryEntryProperties.Program.Main(String [] args)中的.DirectoryEntry.get_Guid():第15行
有任何想法吗?
我是所有机器的管理员,但我确实有另一个由Device Lock服务引起的问题导致了UnauthorizedAccessException审讯,但在这种情况下我甚至无法读取机器的Guid.
事件日志显示没有任何用处.
卢克
c# ×4
wpf ×2
.net ×1
.net-4.5 ×1
asp.net ×1
asp.net-mvc ×1
async-await ×1
binding ×1
css ×1
font-face ×1
fonts ×1
java ×1
jvm ×1
linux ×1
mono ×1
sass ×1
teamcity-7.1 ×1
unit-testing ×1
web ×1
windows ×1
winrt-xaml ×1
xaml ×1