我正在使用Mvvm-Light并且一直忽略了XAML中的绑定到目前为止是如何工作的.
这是我的XAML
<phone:PhoneApplicationPage.Resources>
</phone:PhoneApplicationPage.Resources>
<Grid x:Name="LayoutRoot" Background="Transparent">
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,14">
<TextBlock x:Name="ApplicationTitle" Text="{Binding SecuritySystemName}" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="{Binding PageName}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
<TextBlock Name="textCode"
DataContext="{WHAT GOES HERE to bind to properties on my View (SecurityPanelPage class)}"
Text="{Binding Path=Code}" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
{Binding SecuritySystemName}和{Binding PageName}正确绑定到我的ViewModel(SecuirtyPanelViewModel).但我希望TextBlock元素中的{Binding Code}绑定到我的VIEW(而不是ViewModel).
我搜索并搜索了解释DataContext和Binding支持的语法和值的文档和示例.没有任何帮助.
我想知道的是我如何设置一个DataContext(或指定一个指向我的View对象的{Binding ...}中的东西.我尝试过"Self"和各种"RelativeSource"的东西,但没有猜测是没有效率的,因为在解析XAML之前往返调试器的过程太长了.
谢谢.
更新 - 我找到了一个让我感动的答案,但我仍然没有理解,所以我对下面的精美海报提出了跟进问题.
这是有效的:
<phone:PhoneApplicationPage x:Name="ThisPage">
<TextBlock Name="textCode" Text="{Binding Code, ElementName=ThisPage"/>
</phone:PhoneApplicationPage>
Run Code Online (Sandbox Code Playgroud)
我在这里找到了这个提示:http://bursjootech.blogspot.com/2007/12/bind-from-xaml-to-local-property-in.html
他以不同的方式提出这个问题:如何"在XAML中绑定到代码隐藏的本地财产".
我仍然不明白下面提供的两个解决方案.以下更多问题......
我正在使用弱CPU和WebKit的嵌入式硬件上设计一个JavaScript/HTML驱动的用户界面.
性能并不理想,我想分析应用程序,特别是重排和重新绘制事件的时间,以获得有关实际性能的硬数据,而不是主观和不断变化的观点.
使用常规"getTime()"之前和之后的时序不起作用,因为WebKit推迟重排并在事件处理程序之后重新绘制.
我已经尝试在Speed Tracer下分析应用程序,但计算非常便宜,回流事件甚至不会出现在PC硬件上.我想一些更专注于回流/重绘的工具可能仍然有用.
有关如何获取硬数据的任何提示?
我在尝试安装名为typhoeus的宝石时收到错误(这用于下面的"面向服务导向设计与Rails"一书) - 我已经尝试了很多东西试图解决这个问题,但我已经打了一堵砖墙,我发布在这里,希望有人可以提供帮助.
这是输出:
$ gem install typhoeus
Building native extensions. This could take a while...
ERROR: Error installing typhoeus:
ERROR: Failed to build gem native extension.
/Users/my.name/.rvm/rubies/ruby-1.8.7-p302/bin/ruby extconf.rb
checking for curl/curl.h in /opt/local/include,/opt/local/include/curl,/Users/my.name/.rvm/rubies/ruby-1.8.7-p302/include/curl,/Users/my.name/.rvm/rubies/ruby-1.8.7-p302/include,/usr/include/curl,/usr/local/include/curl... yes
checking for curl_easy_init() in -lcurl... yes
creating Makefile
make
gcc -I. -I. -I/Users/my.name/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/i686-darwin10.5.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -g -O2 -fno-common -pipe -fno-common -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -c native.c
In file included from /usr/local/include/curl/curl.h:35,
from ./native.h:5,
from native.c:1:
/usr/local/include/curl/curlrules.h:143: error: size …Run Code Online (Sandbox Code Playgroud) 我正在开发一个集中使用随机生成的值的应用程序.
我有两个选择:
限制是:我想保留应用程序以实际产生独特的输出.
单个全局随机对象与一组本地随机对象之间的优缺点是什么?
我正在使用.net 4上的Rx框架中的第一步.我正在尝试观察像List<int>或的集合Dictionary<x,x>.当一个项目被添加到集合中时,它将ToString()在控制台中写入它.
有任何想法吗 ?或者一些代码样本谢谢
VB和VB.NET有什么区别?
优选使用示例进行说明.
我有一个对象数组
MyObjects[] mos = GetMyObjectsArray();
Run Code Online (Sandbox Code Playgroud)
现在我想将一个id为1085的元素移到第一个,所以我在LINQ中编写这样的代码,有更优雅的方法吗?
mos.Where(c => c.ID == 1085).Take(1).Concat(mos.Where(c => c.ID != 1085)).ToArray();
Run Code Online (Sandbox Code Playgroud)
注意,我想保存其他项目的定位,因此与第一项交换不是解决方案
我正在使用一些非托管代码,如 -
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);
//Creating a function that uses the API function...
public static bool IsConnectedToInternet() {
int Desc;
return InternetGetConnectedState(out Desc, 0);
}
Run Code Online (Sandbox Code Playgroud)
关于在调用Dispose时如何处理/清理这个extern静态对象的任何建议?