powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF: Text.IsEmpty
6 сообщений из 6, страница 1 из 1
WPF: Text.IsEmpty
    #39228070
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
        <TextBox x:Name="qqq" />
        <TextBlock Text="{Binding ElementName=qqq, Path=Text.IsEmpty}" />

Это работает. А почему? Разве что в какой-то из библиотек WPF, которые подключаются в стандартном наборе, есть метод расширения для String, но ObjectBrowser-ом не нашел...
...
Рейтинг: 0 / 0
WPF: Text.IsEmpty
    #39228231
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает, потому, что Path - это DependencyProperty, если бы Text был обычным свойством, нихера бы конечно не заработало.
Для статических свойств есть x:Static
...
Рейтинг: 0 / 0
WPF: Text.IsEmpty
    #39228232
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes, не Path, а TextBox.Text всмысле
...
Рейтинг: 0 / 0
WPF: Text.IsEmpty
    #39228294
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чье это определение (IsEmpty)? Движка DP? Работает ли это для каких-то еще типов?
...
Рейтинг: 0 / 0
WPF: Text.IsEmpty
    #39228334
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА чье это определение (IsEmpty)? Движка DP? Работает ли это для каких-то еще типов?
В общем повникал маленько и вот что понял: String это класс наследующий IEnumerable, то есть перечисляемый, а значит, это по сути своей коллекция. Для каждой коллекции в WPF создается ICollectionView представление в результате связывания мы получаем класс (internal) EnumerableCollectionView, который оборачивает нашу строку, как и в случаи с ItemsControl'ом и свойством ItemsSource
Магия WPF безжалостна и беспощадна, вот тебе еще набор свойств к которым можно забиндиться, ни чего особенного там нет
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
<Window x:Class="WpfApplication17.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" SizeToContent="WidthAndHeight">
    <Grid >
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <TextBox x:Name="qqq" Grid.Row="0" Margin="5"/>
        <TextBlock Grid.Row="1" Margin="5">
            <TextBlock.Inlines>
                <Run Text="NeedsRefresh:"/> 
                <Run Text="{Binding ElementName=qqq, Path=Text.NeedsRefresh, Mode=OneWay}"/> 
                <LineBreak/>
                <Run Text="IsEmpty:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.IsEmpty, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="Count:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.Count, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="Culture:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.Culture, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="CanFilter:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.CanFilter, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="Filter:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.Filter, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="CanSort:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.CanSort, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="SortDescriptions:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.SortDescriptions, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="CanGroup:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.CanGroup, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="Groups:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.Groups, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="GroupDescriptions:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.GroupDescriptions, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="CurrentPosition:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.CurrentPosition, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="CurrentItem:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.CurrentItem, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="IsCurrentAfterLast:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.IsCurrentAfterLast, Mode=OneWay}"/>
                <LineBreak/>
                <Run Text="IsCurrentBeforeFirst:"/>
                <Run Text="{Binding ElementName=qqq, Path=Text.IsCurrentBeforeFirst, Mode=OneWay}"/>
                <LineBreak/>

            </TextBlock.Inlines>
        </TextBlock>
    </Grid>
</Window>
...
Рейтинг: 0 / 0
WPF: Text.IsEmpty
    #39228505
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за исследование, очень интересно.

ЗЫ: Ответишь? 19115305
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF: Text.IsEmpty
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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