在我的silverlight应用程序中,我在页面上有一系列文本框,它们都以相同的方式绑定。在代码隐藏中,我设置每个的datacontext。有没有人使用样式来加入这种常见的绑定功能?
实施例 在我的page.xaml
<TextBox Name="txtTest" Style="{StaticResource ItemTextBoxInt}"/>
在我的Styles.xaml
中<Resource Dictionary>
<Style x:Key="ItemTextBoxInt" TargetType="TextBox">
<Setter Property="Text" Value="{Binding Amount, Mode=TwoWay, StringFormat=\{0:n0\}}"/>
</Style>
这会在启动时在App.xaml.cs中引发错误
{System.Windows.Markup.XamlParseException:Set property''引发异常。 [行:9位置:36] ---&gt; System.NotSupportedException:无法设置只读属性''。 在MS.Internal.XamlMemberInfo.SetValue(对象目标,对象值) 在MS.Internal.XamlManagedRuntimeRPInvokes.SetValue(XamlTypeToken inType,XamlQualifiedObject&amp; inObj,XamlPropertyToken inProperty,XamlQualifiedObject&amp; inValue) ---内部异常堆栈跟踪结束--- 在System.Windows.Application.LoadComponent(对象组件,Uri resourceLocator) 在STARS_Silverlight.App.InitializeComponent() 在STARS_Silverlight.App..ctor()}
任何人都知道这是否可能,如果是,那么正确的方法是什么?
-Andrew
答案 0 :(得分:5)
不幸的是,SL4仍然不支持样式中的绑定。解决方法:http://blogs.msdn.com/b/delay/archive/2009/11/02/as-the-platform-evolves-so-do-the-workarounds-better-settervaluebindinghelper-makes-silverlight-setters-better-er.aspx
答案 1 :(得分:0)
验证Amount
属性是否有公开的setter。