En C# en sí, ¿hay algo así como "propiedad adjunta" utilizada en WPF?¿Hay alguna propiedad adjunta en C# en sí?
Respuesta
La respuesta corta es no. La respuesta un poco más larga es que esta es una historia un poco desafortunada. Diseñamos "propiedades de extensión" para C# 4 y llegamos tan lejos como para implementarlas (pero no para probarlas) cuando nos dimos cuenta, oh, espera, de que lo que diseñamos no es realmente compatible con las propiedades de estilo WPF. En lugar de rediseñar y volver a implementar la función, terminamos cortándola.
La versión incluso más tiempo está aquí:
http://blogs.msdn.com/b/ericlippert/archive/2009/10/05/why-no-extension-properties.aspx
Creo que estás pensando en getters y setters.
Se crean así:
public class Person
{
//default constructor
public Person()
{
}
private string _Name;
public string Name
{
//set the person name
set { this._Name = value; }
//get the person name
get { return this._Name; }
}
}
Más acerca de cómo funcionan aquí: http://msdn.microsoft.com/en-us/library/aa287786(v=vs.71).aspx
AttachedProperties son parte de .NET Framework, no forma parte de la especificación del lenguaje C#, y en concreto parte del espacio de nombres System.Activities.Presentation.Model, que es específico de WPF.
Apostaría la pregunta se refiere a 'DependencyProperty' y' 'DependencyObject' en System.Windows', no' System.Activities.Presentation.Model' (que se parece WF cosas) –
En WPF, una propiedad adjunta le permite hacer algo como:
<TextBlock Grid.Row="2" Text="I know nothing about grids!" />
Esto sería como tener una clase en C# define como:
public class TextBlock
{
public string Text { get; set; }
}
Y ser capaz de hacer esto:
var tb = new TextBlock();
tb.Grid.Row = 2; // this line would not compile
con el fin de hacer este trabajo, que había necesidad de pasar un objeto Grid
en su TextBl clase rebaño:
public class TextBlock
{
public string Text { get; set; }
public Grid Grid { get; set; }
public TextBlock(Grid grid)
{
Grid = grid;
}
}
Pero no creo que haya nada directamente equivalente a la forma en que las propiedades asociadas trabajan en WPF. Tendrás que construirlo a mano.
¿Qué estás tratando de lograr?
Puede utilizar la clase ConditionalWeakTable<TKey, TValue>
adjuntar arbitraria de éste de una instancia. Puede combinarlo con métodos de extensión para crear un formulario de extension properties, pero desafortunadamente sin usar la sintaxis de la propiedad agradable en C#.
- 1. Validation.HasError propiedad adjunta
- 2. propiedad adjunta lista tipo
- 3. Estilo Trigger en la propiedad adjunta
- 4. Limitar propiedad de dependencia adjunta en wpf
- 5. ¿Cómo puedo acceder a una propiedad adjunta en el código?
- 6. ¿Animar el elemento WPF en XAML usando la propiedad adjunta?
- 7. ¿Hay alguna manera de descargar Xcode por sí mismo?
- 8. ¿Hay alguna forma de currying en C?
- 9. ¿Hay alguna alternativa para dormir() en C?
- 10. ¿Cuál es la diferencia entre una propiedad de dependencia y una propiedad adjunta en WPF?
- 11. ¿Hay alguna manera de interceptar setters y getters en C#?
- 12. ¿Hay alguna manera de establecer una propiedad una vez solo en C#
- 13. ¿Es una propiedad de cadena en sí misma threadsafe?
- 14. ¿Hay alguna razón para usar propiedades privadas en C#?
- 15. Simplemente curioso, ¿hay alguna forma de evitar MustOverride en C#?
- 16. ¿Hay alguna manera de revertir una cripta() en c?
- 17. Cómo utilizar la propiedad adjunta dentro de un estilo?
- 18. ¿Hay alguna biblioteca C++ XSLT?
- 19. Pase la propiedad en sí para funcionar como parámetro en C#
- 20. ¿Hay alguna alternativa a C?
- 21. No se puede vincular una propiedad adjunta a otra propiedad de dependencia
- 22. Agregar DataBinding para Propiedad adjunta por Código Detrás
- 23. ¿Se puede vincular un DataTrigger a una propiedad adjunta?
- 24. ¿Cómo configurar un TypeConverter en una propiedad de dependencia adjunta en Silverlight?
- 25. ¿Hay alguna función en Perl similar a GetType() en C#?
- 26. En Perl, ¿hay alguna manera de reiniciar el programa que se ejecuta desde sí mismo?
- 27. ¿Hay alguna manera de comunicarse entre sí con los módulos en boilerplatejs?
- 28. ¿Hay alguna razón para establecer la causa de la excepción en sí misma?
- 29. ¿Hay alguna razón para tener una propiedad sin getter?
- 30. Genérico propiedad en C#
¿Qué quiere decir "In C# itself"? C# es una especificación de idioma, ¿cómo podría tener "propiedades adjuntas"? La pregunta no tiene ningún sentido. –
@EdS ¿Cómo es posible que una especificación de idioma tenga "propiedades adjuntas"? Al incluirlos en la especificación, ¿no? ¿Cómo no tiene sentido la pregunta? Me parece bastante claro. El hecho de que la respuesta es no, no lo hace absurdo o "no es una pregunta real". –
@Martinho Fernandes: suficiente. Supongo que la especificación del lenguaje * podría * llamar luego si se implementaron en ese nivel (como una propiedad). –