Я пишу собственный элемент управления. Предполагается, что этот элемент управления отображает элементы из некоторой коллекции, и я хочу, чтобы пользователи этого элемента управления предоставляли DisplayMemberPath, чего я могу добиться, создав ItemTemplate с помощью XamlReader следующим образом:
Код: Выделить всё
private DataTemplate CreateItemTemplate()
{
StringReader stringReader = new StringReader(
$@"
");
XmlReader xmlReader = XmlReader.Create(stringReader);
return XamlReader.Load(xmlReader) as DataTemplate;
}
Код: Выделить всё
internal class Foobar
{
public static readonly DependencyProperty BazProperty = DependencyProperty.RegisterAttached(
"Baz",
typeof(string),
typeof(Foobar),
new FrameworkPropertyMetadata(string.Empty, OnTextChanged));
public static string GetBaz(FrameworkElement frameworkElement) => (string)frameworkElement.GetValue(BazProperty);
public static void SetBaz(FrameworkElement frameworkElement, string value) => frameworkElement.SetValue(BazProperty, value);
private static void OnTextChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
}
}
Код: Выделить всё
private DataTemplate CreateItemTemplate()
{
StringReader stringReader = new StringReader(
$@"
");
XmlReader xmlReader = XmlReader.Create(stringReader);
return XamlReader.Load(xmlReader) as DataTemplate;
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... eexception
Мобильная версия