Silverlight - Установка DataContext в XAML, а не в конструкторе?

Мне нравится использовать

git show --stat <SHA1>^..<SHA2>
30
задан MattSlay 3 March 2009 в 16:25
поделиться

5 ответов

Ответ, который дал Chris, работает просто великолепно. Я протестировал, и это работало на меня. Можно инстанцировать класса в XAML (в UserControl. Ресурсы), и затем связывают datacontext со статическим ресурсом.

Следуют за кодом:


<UserControl ...>
    <UserControl.Resources>
       <myNS:MyClass x:Name="TheContext" x:Key="TheContext"></myNS:MyClass>
    </UserControl.Resources>
    <Grid x:Name="LayoutRoot" Background="White" DataContext="{StaticResource TheContext}" >
        <TextBlock Text="{Binding Path=Field1}">
        </TextBlock>
    </Grid>
</UserControl>

24
ответ дан Klinger 3 March 2009 в 16:25
поделиться
  • 1
    Спасибо, даже при том, что немного поздно. Я don' t помнят, как я решил проблему, но это смотрит хорошее решение. Если бы кто-либо подтверждает это, это было бы большим. Я не забываю находить НУЛЬ об этом преобразовании. – Masiar 17 January 2013 в 10:20

попробуйте что-то вроде этого.....

<Grid DataContext="{Binding Path=HPVM}">
</Grid>

, где HPVM является общедоступным членом этого->, Ваша форма и т.д.

Создает экземпляр Вашего класса в xaml, путем добавления чего-то вроде этого к разделу ресурсов.... (не забывайте добавлять xmlns пространство имен)

<my:bogart x:Key="franken"/>

тогда, ограничьте контекст данных к статическому ресурсу, который Вы просто добавили....

<Grid x:Name="LayoutRoot" Background="White" DataContext="{StaticResource franken}">
    <TextBox  Background="Red" Foreground="White" Text="{Binding Path=sum}"  />
</Grid>
2
ответ дан Muad'Dib 3 March 2009 в 16:25
поделиться
  • 1
    Миллисекунды не являются измерением частоты - я предполагаю их средний период. – UpTheCreek 19 January 2016 в 19:11

Это не возможно (Это возможно в WPF с {Binding RelativeSource={RelativeSource Self}}, но Silverlight более ограничена.

необходимо сделать это через код.

0
ответ дан biju 3 March 2009 в 16:25
поделиться
  • 1
    Просто хочу прокомментировать, что это - лучшее решение, оно ускорило мои загрузки почти 10 сгибов в некоторых случаях. Спасибо!! – Abadaba 22 August 2013 в 08:39
<UserControl.DataContext>
  <vm:ThisUCViewModel />
</UserControl.DataContext>
6
ответ дан 28 November 2019 в 00:09
поделиться

Следующее чудовище работает в Silverlight 4

<UserControl 
  DataContext="{Binding HPVM, RelativeSource={RelativeSource Self}}">
10
ответ дан 28 November 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: