как изменить источник xmldataprovider в wpf во время выполнения? - PullRequest
3 голосов
/ 10 января 2010

Я создал приложение, которое рисует дерево организации на основе значений из XML-файла.

Файл xaml выглядит так:

<Window.Resources>


    <!-- The Org Chart Data-->
    <XmlDataProvider x:Key="organization"  Source="model.xml" />

    <SolidColorBrush x:Key="ListBorder" Color="#FF7F9DB9"/>

    <!-- The Style for Nodes -->
    <Style TargetType="{x:Type draw:Node}">
        <Setter Property="OverridesDefaultStyle" Value="true"/>
        <Setter Property="Template">
        ---------------------------------------------------------

Я хочу иметь возможность изменить источник во время выполнения, выбрав XML-файл из openfiledialog (например, нажатие кнопки), как мне это сделать?

1 Ответ

6 голосов
/ 10 января 2010

Вы можете получить экземпляр XmlDataProvider, написав (XmlDataProvider)this.Resources["organization"] в файле кода.

Затем можно установить для свойства Source путь из диалогового окна файла.

Например:

var provider = (XmlDataProvider)this.Resources["organization"];
var dialog = new OpenFileDialog();
dialog.Filter = "XML Files|*.xml";
if (dialog.ShowDialog(this)) {
    provider.Source = new Uri(dialog.FileName, UriKind.Absolute);
...