powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Binding xsd
7 сообщений из 7, страница 1 из 1
Binding xsd
    #39499096
margo37t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть файл с xsd схемой, примерно следующей структуры:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0" encoding="windows-1251"?>
<xk:schema xmlns:xk="http://www.w3.org/2001/XMLSchema">
<xk:Types name="dTest">
	<xk:restriction base="xk:string">
			<xk:type value="01">
				<xk:name>
					<xk:document>амбарная книга</xk:document>
				</xk:name>
			</xk:type>
			<xk:type value="02">
				<xk:name>
					<xk:document>журнал учета</xk:document>
				</xk:name>
			</xk:type>
	</xk:restriction>
</xk:Types>
</xk:schema>


Пытаюсь сделать привязку данных в comboBox, чтобы его элементы заполнялись данными из этой схемы. Примерно так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    <Window.Resources>
        <XmlDataProvider x:Key="Types">
            <XmlDataProvider.XmlNamespaceManager>
                <XmlNamespaceMappingCollection>
                    <XmlNamespaceMapping
                        Uri="c:\dTest.xsd"
                        Prefix="dt" />
                </XmlNamespaceMappingCollection> 
            </XmlDataProvider.XmlNamespaceManager>
        </XmlDataProvider>    
    </Window.Resources>

<ComboBox x:Name="comboDt" Grid.Column="1" Height="25" VerticalAlignment="Top" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Source={StaticResource Types}, XPath=//dt:type}" DisplayMemberPath="@value"  />



Но список в comboBox все равно остается пустой. Как правильно привязать к схеме, которая в виде файла, локально расположенного? Сильно не бейте, только начала осваивать wpf )))
...
Рейтинг: 0 / 0
Binding xsd
    #39499179
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А с чего вы взяли, что в атрибуте Uri элемента XmlNamespaceMapping должен быть путь к вашему xml? Путь к нему указывается в атрибуте Source самого XmlDataProvider, а в Uri XmlNamespaceMapping'а должен быть тот Uri, который вы сопоставляете префиксу для поиска элементов, в данном случае это http://www.w3.org/2001/XMLSchema
...
Рейтинг: 0 / 0
Binding xsd
    #39499230
margo37t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за замечание, переделала в такой вид:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    <Window.Resources>
        <XmlDataProvider x:Key="Types" Source="c:\dTest.xsd">
            <XmlDataProvider.XmlNamespaceManager>
                <XmlNamespaceMappingCollection>
                    <XmlNamespaceMapping
                        Uri="http://www.w3.org/2001/XMLSchema"
                        Prefix="dt" />
                </XmlNamespaceMappingCollection> 
            </XmlDataProvider.XmlNamespaceManager>
        </XmlDataProvider>    
    </Window.Resources>


Но список в comboBox все равно остается пустой.
...
Рейтинг: 0 / 0
Binding xsd
    #39499235
margo37t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры Павловны, спасибо еще раз за помощь, вы абсолютно правы. Нашла у себя ошибку еще в одном месте. Все заработало. Тему можно закрывать.
...
Рейтинг: 0 / 0
Binding xsd
    #39499558
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
margo37tСон Веры Павловны, спасибо еще раз за помощь, вы абсолютно правы. Нашла у себя ошибку еще в одном месте. Все заработало. Тему можно закрывать.

Возможно, другим будет полезен Ваш опыт, если Вы конечно поделитесь.
...
Рейтинг: 0 / 0
Binding xsd
    #39499858
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidymargo37tСон Веры Павловны, спасибо еще раз за помощь, вы абсолютно правы. Нашла у себя ошибку еще в одном месте. Все заработало. Тему можно закрывать.

Возможно, другим будет полезен Ваш опыт, если Вы конечно поделитесь.

В общем, вот так должно работать.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    <Window.Resources>
        <XmlDataProvider x:Key="dTest" Source="c:\dTest.xsd">
            <XmlDataProvider.XmlNamespaceManager>
                <XmlNamespaceMappingCollection>
                    <XmlNamespaceMapping
                        Uri="http://www.w3.org/2001/XMLSchema"
                        Prefix="xk"/>
                </XmlNamespaceMappingCollection>
            </XmlDataProvider.XmlNamespaceManager>
        </XmlDataProvider>
    </Window.Resources>
    <Grid>
        <StackPanel>
            <ComboBox ItemsSource="{Binding Source={StaticResource Test}, XPath=//xk:type}"
                      DisplayMemberPath="@value"/>
        </StackPanel>
    </Grid>
...
Рейтинг: 0 / 0
Binding xsd
    #39500516
margo37t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iMrTidymargo37tСон Веры Павловны, спасибо еще раз за помощь, вы абсолютно правы. Нашла у себя ошибку еще в одном месте. Все заработало. Тему можно закрывать.

Возможно, другим будет полезен Ваш опыт, если Вы конечно поделитесь.

Заработало при таком подходе:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  <Window.Resources>
        <XmlDataProvider x:Key="Types" Source="c:\dTest.xsd">
            <XmlDataProvider.XmlNamespaceManager>
                <XmlNamespaceMappingCollection>
                    <XmlNamespaceMapping
                        Uri="http://www.w3.org/2001/XMLSchema"
                        Prefix="dt" />
                </XmlNamespaceMappingCollection> 
            </XmlDataProvider.XmlNamespaceManager>
        </XmlDataProvider>    
    </Window.Resources>

<ComboBox x:Name="comboDt" Grid.Column="1" Height="25" VerticalAlignment="Top" IsSynchronizedWithCurrentItem="True" 
                  ItemsSource="{Binding Source={StaticResource Types}, XPath=//dt:type}" DisplayMemberPath="@value"/>


+ у файла должно быть значение свойства BuildAction Resource
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Binding xsd
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]