Как добавить конкретный usercontrol viewmodel, но все же достичь изменения свойства зависимости в WPF [дублировать]C#

Место общения программистов C#
Ответить
Anonymous
 Как добавить конкретный usercontrol viewmodel, но все же достичь изменения свойства зависимости в WPF [дублировать]

Сообщение Anonymous »

Я хотел бы создать библиотеку классов WPF на основе Treeview для визуализации строк json. Я не хочу использовать для прохождения строки JSON. Я могу получить строку в jsonchangedcallback без DataContext . Когда я добавляю DataContext в viewModel , jsonChangedCallback больше не достигнут. Я еще не уверен, как я это достигну, но я считаю, что конкретная вида viewModel потребуется обработать расширения узел TreeView .
Время, я не хочу загружать строку JSON из файла, но напрямую предоставлять ее из приложения потребителя. Я, наверное, изменим его позже, если выступления имеют значение.
Я считаю, что если я не указал viewmodel в View библиотеки классов It берет один из приложения потребителя. Я не получаю никакой ошибки привязки. >
  • Consumer App (упрощено)




< /code>

Библиотека классов WPF < /strong> < /li>
< /ul>














< /code>
public partial class JsonVisualizer : TreeView
{
#region Public Static Readonly Members

public static readonly DependencyProperty JsonProperty =
DependencyProperty.Register(
nameof(Json),
typeof(string),
typeof(JsonVisualizer),
new PropertyMetadata(null, JsonChangedCallback));

public string Json
{
get => (string)GetValue(JsonProperty);
set => SetValue(JsonProperty, value);
}

public JsonVisualizer()
{
InitializeComponent();

//DataContext = new JsonVisualizerViewModel();
}

private static void JsonChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var json = e.NewValue;

// Code reached if no DataContext specified in the constructor.
}
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... ency-prope
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»