Silverlight 标签内容绑定(bind)问题

标签 silverlight mvvm

我会在这之前说,我大约一周前是 Silverlight 开发的新手,所以我很可能做错了......

无论如何,我在 XAML 中完成了一个标签和一个文本框:

<dataInput:Label Target="{Binding ElementName=JobCode}" Height="18" HorizontalAlignment="Left" Margin="15,7,0,0" Name="lableJobCode" VerticalAlignment="Top" Width="250" FontWeight="Bold"  Grid.Column="1" />  
<TextBox Height="23" Text="{Binding SelectedRole.Job_Code}" HorizontalAlignment="Left" Margin="15,31,0,0" Name="JobCode" VerticalAlignment="Top" Width="277" Grid.Column="1" IsReadOnly="{Binding IsNotAdmin}" />   

一切都很好,我唯一的问题是我在 IsReadOnly 属性上执行的绑定(bind),该属性转到我的 ViewModel 中的 bool 值,该 bool 值是基于对身份验证服务的调用设置的,现在将标签内容覆盖到名称我的 ViewModel 属性:IsNotAdmin。我似乎无法找到一种方法来指定从哪个数据绑定(bind)源中提取标签内容 MetaData。也许我错过了一些关于如何从我的 ViewModel 操作控件可编辑性/可见性的东西。

--更新:TextBox绑定(bind)的数据源类如下​​(针对相关部分):
public class RoleSummary {

    [Display(Name= "Job Code (To be Completed by HR):")]
    public string Job_Code { get; set; }  

如果没有绑定(bind)到 IsReadOnly 属性,Label 可以很好地显示数据注释中的文本。当我添加绑定(bind)时,它显示“IsNotAdmin”

最佳答案

您可以发布更多代码吗?我不完全确定您要实现的目标是什么,因此很难提出解决方案。

我假设您正在尝试创建一个对其执行验证的文本输入元素(因此是标签)——但是标签应该为其内容显示的究竟是什么?

编辑:我想通了。默认情况下,标签控件会查看其数据上下文中的所有属性,以查找它可以使用的元数据。无论出于何种原因,它决定在您的代码中使用 IsNotAdmin 属性的元数据(即使您没有手动设置它,我假设 Display 元数据获取属性名称的默认值),因此您可以为标签的文本。

Microsoft 将属性说明符放入数据控件中,以便您可以告诉它应该使用哪个属性进行元数据查找:PropertyPath

试试这样:

<dataInput:Label Target="{Binding ElementName=JobCode}" PropertyPath="SelectedRole.Job_Code" Height="18" HorizontalAlignment="Left" Margin="15,7,0,0" Name="lableJobCode" VerticalAlignment="Top" Width="250" FontWeight="Bold"  Grid.Column="1" />  
<TextBox Height="23" Text="{Binding SelectedRole.Job_Code}" HorizontalAlignment="Left" Margin="15,31,0,0" Name="JobCode" VerticalAlignment="Top" Width="277" Grid.Column="1" IsReadOnly="{Binding IsNotAdmin}" />

只要您的数据上下文是正确的(应该是正确的),这应该对您有用——它在我从您的代码中重建的示例中有效。

关于Silverlight 标签内容绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1923035/

相关文章:

wcf - 银光 : WCF getting error on server but localhost works fine

c# - 根据值更改 Silverlight4 中文本 block 的前景色

silverlight - 使用 SSL 的 WCF 服务数据限制

mvvm - 找不到Galasoft MVVM轻型Windows 8 ResourceMap

asp.net - 测试如何与 ASP.NET MVC/WEBFORMS Silverlight MVVM 相关

c# - 在 WPF 的 ContentControl 中托管 ViewModel

c# - 计算 Property Changed MVVM 上两个值的结果

c# - Silverlight 在没有 IIS 的情况下访问 WCF 和 CrossDomainAccessPolicy

android - Dagger 2 注入(inject) ViewModel 异常行为(ViewModel 未在屏幕旋转时重新使用)

c# - 如何将子对象实例中的属性更改传达给 View ?