Click here to Skip to main content
15,881,852 members
Home / Discussions / WPF
   

WPF

 
GeneralRe: WPF View Data Template Questions Pin
SledgeHammer0122-Oct-13 7:27
SledgeHammer0122-Oct-13 7:27 
GeneralRe: WPF View Data Template Questions Pin
Mycroft Holmes22-Oct-13 12:49
professionalMycroft Holmes22-Oct-13 12:49 
GeneralRe: WPF View Data Template Questions Pin
_Maxxx_22-Oct-13 13:08
professional_Maxxx_22-Oct-13 13:08 
GeneralRe: WPF View Data Template Questions Pin
Mycroft Holmes22-Oct-13 14:13
professionalMycroft Holmes22-Oct-13 14:13 
GeneralRe: WPF View Data Template Questions Pin
SledgeHammer0122-Oct-13 14:46
SledgeHammer0122-Oct-13 14:46 
GeneralRe: WPF View Data Template Questions Pin
SledgeHammer0122-Oct-13 14:40
SledgeHammer0122-Oct-13 14:40 
GeneralRe: WPF View Data Template Questions Pin
_Maxxx_22-Oct-13 13:03
professional_Maxxx_22-Oct-13 13:03 
AnswerRe: WPF View Data Template Questions Pin
Gabriel Szabo17-Oct-13 23:03
Gabriel Szabo17-Oct-13 23:03 
You can write custom DataTemplateSelector and then use it in e.g. ContentControl as a ContentTemplateSelector.
For example the following selector looks for desired datatemplate in control's resources by MaterialType:
C#
public class MaterialDataTemplateSelector : DataTemplateSelector
{
    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        FrameworkElement element = container as FrameworkElement;
        MaterialsViewModel materials = item as MaterialsViewModel;

        string resKey = "materialsTemplateFor" + Enum.GetName(typeof(MaterialType), materials.MaterialType);
        return element.FindResource(resKey) as DataTemplate;
    }
}

Here are the resources you need in your MaterialsView control:
HTML
<DataTemplate x:Key="materialsTemplateForType1">
    <views:MaterialType1View />
</DataTemplate>

<DataTemplate x:Key="materialsTemplateForType2">
    <views:MaterialType2View />
</DataTemplate>

<views:MaterialDataTemplateSelector x:Key="materialDataTemplateSelector" />

And this is how you use it in your control:
HTML
<ContentControl ContentTemplateSelector="{StaticResource materialDataTemplateSelector}" />

Hope it helps.
Gabriel Szabo

GeneralRe: WPF View Data Template Questions Pin
SledgeHammer0118-Oct-13 4:54
SledgeHammer0118-Oct-13 4:54 
GeneralRe: WPF View Data Template Questions Pin
Gabriel Szabo21-Oct-13 22:35
Gabriel Szabo21-Oct-13 22:35 
GeneralRe: WPF View Data Template Questions Pin
SledgeHammer0122-Oct-13 5:21
SledgeHammer0122-Oct-13 5:21 
QuestionBinding to a collection in code behind Pin
Alessandro Ranieri17-Oct-13 3:24
Alessandro Ranieri17-Oct-13 3:24 
AnswerRe: Binding to a collection in code behind Pin
Matt T Heffron17-Oct-13 7:43
professionalMatt T Heffron17-Oct-13 7:43 
AnswerRe: Binding to a collection in code behind Pin
SledgeHammer0117-Oct-13 9:17
SledgeHammer0117-Oct-13 9:17 
AnswerRe: Binding to a collection in code behind Pin
Abhinav S17-Oct-13 17:12
Abhinav S17-Oct-13 17:12 
QuestionMouse up/down events Pin
columbos1492716-Oct-13 19:52
columbos1492716-Oct-13 19:52 
AnswerRe: Mouse up/down events Pin
Richard Deeming17-Oct-13 0:42
mveRichard Deeming17-Oct-13 0:42 
AnswerRe: Mouse up/down events Pin
Ashfaque Hussain25-Oct-13 1:08
Ashfaque Hussain25-Oct-13 1:08 
QuestionWPF FrameWork Pin
Kevin Marois16-Oct-13 9:43
professionalKevin Marois16-Oct-13 9:43 
AnswerRe: WPF FrameWork Pin
Marco Bertschi16-Oct-13 10:05
protectorMarco Bertschi16-Oct-13 10:05 
AnswerRe: WPF FrameWork Pin
Pete O'Hanlon16-Oct-13 11:11
mvePete O'Hanlon16-Oct-13 11:11 
AnswerRe: WPF FrameWork Pin
SledgeHammer0116-Oct-13 17:44
SledgeHammer0116-Oct-13 17:44 
AnswerRe: WPF FrameWork Pin
Abhinav S16-Oct-13 18:18
Abhinav S16-Oct-13 18:18 
Questionwhat better way to open the form?! c# wpf Pin
juliogyn16-Oct-13 3:33
juliogyn16-Oct-13 3:33 
AnswerRe: what better way to open the form?! c# wpf Pin
GuyThiebaut16-Oct-13 5:24
professionalGuyThiebaut16-Oct-13 5:24 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.