Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Смена картинки на кнопке / 4 сообщений из 4, страница 1 из 1
28.10.2013, 23:34
    #38444250
4eburawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смена картинки на кнопке
Добрый вечер друзья. Опять что то не так делаю. Не меняется моя картинка по смене IsLocked . Мне кажется вообще не видит Pg1 . Если навести мышкой на Pg1 в xamle, пишет: Cannot resolve symbol "Pg1" due to unknown DataContext , но проект компилируется и никаких Warning'ов не кидает. Подскажите пожалуйста где ошибка или как правильно сделать.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public readonly PGrid Pg1;
...
    Pg1 = new PGrid();
...
    public class PGrid : Grid
    {
        public static readonly DependencyProperty PGridLockProperty = DependencyProperty.Register("IsLocked", typeof(Boolean), typeof(PGrid));
        public Boolean IsLocked
        {
            get { return (Boolean)GetValue(PGridLockProperty); }
            set { SetValue(PGridLockProperty, value); }
        }



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
                                <Button x:Name="LockButton" Click="Lock_Click" Style ="{DynamicResource RoundCorner2}" Width="36">
                                    <StackPanel>
                                        <!--<Image Source="Pictures/security_lock.png" ToolTip="Save" Width="28"/>-->
                                        <Image Width="28">
                                            <Image.Style>
                                                <Style TargetType="{x:Type Image}" >
                                                    <Setter Property="Source" Value="Pictures/security_lock.png" />
                                                    <Style.Triggers>
                                                        <DataTrigger Binding="{Binding Pg1.IsLocked}" Value="False">
                                                            <Setter Property="Source" Value="Pictures/security_unlock.png" />
                                                        </DataTrigger>
                                                    </Style.Triggers>
                                                </Style>
                                            </Image.Style>
                                        </Image>
                                    </StackPanel>
                                </Button>
...
Рейтинг: 0 / 0
29.10.2013, 00:56
    #38444301
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смена картинки на кнопке
Привязка работает со свойствами, т.е. вместо
public readonly PGrid Pg1;
попробуйте, например
public PGrid Pg1 { get; private set; }
...
Рейтинг: 0 / 0
29.10.2013, 02:44
    #38444341
4eburawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смена картинки на кнопке
Но IsLocked и есть property у Pg1, a Pg1 это Grid который я динамически добавляю.
...
Рейтинг: 0 / 0
29.10.2013, 16:33
    #38445411
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смена картинки на кнопке
4eburawka,

речь идет не о IsLocked, а о Pg1, система привязки сначала будет искать свойство (но не поле, так уж устроена система) с названием "Pg1" в DataContext-е контрола, и уж затем у найденного объекта (значения этого свойства) "подсвойство" с названием "IsLocked" (см. Binding.Path , Subproperties of a property)
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Смена картинки на кнопке / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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