Проблема в связывании свойства зависимости в другом в XAML - PullRequest
0 голосов
/ 26 декабря 2010

ОК, у меня есть шаблон данных для элементов:

<DataTemplate x:Key="SmallDayEventItemTemplate">
        <Border ...>
            <Grid ...>

                <TextBlock ...
                        Text="{Binding Path=Title}"/>

                <my:SmallPlayer ...
                        PlayerSource="{Binding Path=MediaSource}">
                </my:SmallPlayer>
             </Grid>
        </Border>
</DataTemplate>

Также у меня есть UserControl с именем SmallPlayer.В SmallPlayer.xaml.cs:

 public Uri PlayerSource
        {
            get { return (Uri)GetValue(PlayerSourceProperty); }
            set
            {
                SetValue(PlayerSourceProperty, value);
                //player.Open(value);
            }
        }

        public static readonly DependencyProperty PlayerSourceProperty =
            DependencyProperty.Register("PlayerSource", typeof(Uri), typeof(SmallPlayer));

Поэтому, когда я передаю MediaSource элемента внутри кода окна владельца, вызывается item s set метод доступа, но SmallPlayer 's *Аксессор 1013 * set никогда не вызывается!Это в то время как TextBlock, который привязан к Title свойству, действует как ожидалось!

Uri uri = null;
if (Uri.TryCreate(mediaName, UriKind.RelativeOrAbsolute, out uri))
       item.MediaSource = uri;

Это меня смущает!Что не так?

1 Ответ

2 голосов
/ 26 декабря 2010

Оболочка CLR для свойства зависимостей никогда не вызывается, поэтому никогда не должна содержать никакой посторонней логики. Если вам нужна дополнительная логика при изменении свойства зависимости, используйте метаданные свойства зависимости . И, в частности, свойство изменило обратный вызов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...