Dataform.EditTemplate Usar string de exibição
-
27-09-2020 - |
Pergunta
Aqui está uma parte do meu DataForm
<Grid x:Name="LayoutRoot" Background="White">
<df:DataForm x:Name="df1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" CurrentItem="{StaticResource descriptor}" CommandButtonsVisibility="All" AutoGenerateFields="False" >
<df:DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
<df:DataField Label="Capital Cost" >
<TextBox Text="{Binding CapitalCost, Mode=TwoWay}" ></TextBox>
</df:DataField>
em vez de especificar explicitamente o rótulo "Custo de capital", gostaria de usar os dados de exibição que tenho no tipo subjacente
public class Descriptor
{
[Display(Name = "Capital Cost:", Description = "The negotiated price of the car")]
public double CapitalCost
{
get
{
return _CapitalCost;
}
set
{
if (value > UsMsrp)
throw new ArgumentException("Capital Cost must be equal or less than US MSRP");
_CapitalCost = value;
}
}
A descrição é transportada muito bem para a interface, mas estou confuso no que diz respeito ao nome
Obrigado!
Solução
Você deve definir um IValueConverter que receba sua propriedade como entrada e retorne o valor de DisplayAttribute. Aqui é um exemplo que faz algo semelhante usando o DisplayNameAttribute padrão.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow