2012-06-11 3 views
0

В приложении нужно использовать какой-то пользовательский объект, где каждые имеют свои собственные свойства и эти свойства, поступающие из базы данных, так вВозможно ли получить данные внутри файла XAML?

<Style x:Key="key1" TargetType="Rectangle"> 

     <Setter Property="Stretch" Value="Fill"/> 
     <Setter Property="IsHitTestVisible" Value="False"/> 
     <Setter Property="s:Prop.ID" Value="1234567890-ABC" /> 
    </Style> 

я должен присвоить значение свойств. Любая помощь будет оценена.

Спасибо, Amit

ответ

0

Вы можете использовать TryFindResource (ключ объекта). Например, если ваш стиль находится под ресурсами вашего окна, и вы хотите установить второй сеттер на правда, вы можете поместить это в код-за:

((TryFindResource("key1") as Style).Setters[1] as Setter).Value = true; 

Вы также можете использовать binding. Просто установите значение Value="{Binding Path=path}" и сделайте свой путь зависимым. Это также работает с multibinding и конверсией.

+0

заметит, что '' TryFindResource' возвращает null', если объект не найден, таким образом, есть потенциал 'NullReferenceException' здесь. – Default

+0

Да, я это понимаю. Хотя я использую его прямо сейчас в том, над чем я работаю, и у меня никогда не было этой проблемы. – benjer3

+0

Я предполагаю, что TryFindResource() не имеет ничего общего с базой данных, поэтому привязка может быть решением для моего дела. правильно? –

0

Возможно, MVVM поможет вам. Затем у вас есть ViewModel, который отображает ваши свойства в представлении. Модель - это то, что будет предоставлять база данных. ViewModel - это адаптер между моделью и представлением.

Джейсон Доллингер объясняет это очень хорошо в своем видео, которое является available here

+0

Здравствуйте, Mare, я в середине проекта wpf и не знаком с MVVM, так это то, что я могу сделать в своем проекте, или мне пришлось сначала создать его на MVVM? –

+0

Я считаю, что вы можете начать использовать MVVM в любой момент. особенно для решения такой проблемы. но в любом случае вы будете использовать MVVM в любом месте, так как это просто, просто и хорошо подходит для большинства этих настроек. –