J'essaie de créer un contrôle utilisateur qui, selon le mode défini par l'utilisateur dans la propriété de dépendance, modifie le contrôle utilisateur en un TextBlock et un autre TextBlock ou un TextBlock et un TextBox. Je sais que les propriétés de dépendance obtiennent l'information, mais le problème se pose lorsque j'essaie de définir le bon modèle. Pour une raison quelconque, le modèle ne s'affiche pas correctement.XAML conditionnel (WPF)
XAML:
<UserControl x:Class="BookOrganizer.FlipBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:my="clr-namespace:BookOrganizer"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<StackPanel Orientation="Horizontal" Height="Auto" Width="Auto" >
<StackPanel.Resources>
<ContentControl x:Key="Box">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Title}" Height="Auto" Width="Auto" />
<TextBox Text="{Binding Path=Text}" Height="Auto" Width="Auto" />
</StackPanel>
</ContentControl>
<ContentControl x:Key="Block" Height="Auto" Width="Auto">
<StackPanel Orientation="Horizontal" Height="Auto" Width="Auto">
<TextBlock Text="{Binding Path=Title}" Height="Auto" Width="Auto" />
<TextBlock Text="{Binding Path=Text}" Height="Auto" Width="Auto"/>
</StackPanel>
</ContentControl>
</StackPanel.Resources>
<ContentControl Template="{Binding Path=BoxMode}" />
</StackPanel>
code Derrière:
using System;
using System.Windows;
using System.Windows.Controls;
namespace BookOrganizer
{
/// <summary>
/// Interaction logic for FlipBox.xaml
/// </summary>
public partial class FlipBox : UserControl
{
public static readonly DependencyProperty TitleProperty = DependencyProperty.Register(
"Title", typeof(String), typeof(FlipBox), new PropertyMetadata("nothing"));
public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
"Text", typeof(String), typeof(FlipBox), new PropertyMetadata("nothing"));
public static readonly DependencyProperty BoxModeProperty = DependencyProperty.Register(
"BoxMode", typeof(String), typeof(FlipBox), new PropertyMetadata("Box"));
public FlipBox()
{
InitializeComponent();
this.DataContext = this;
}
public String Title
{
get { return (String)this.GetValue(TitleProperty); }
set { this.SetValue(TitleProperty, value); }
}
public String Text
{
get { return (String)this.GetValue(TextProperty); }
set { this.SetValue(TextProperty, value); }
}
public String BoxMode
{
get { return (String)this.GetValue(BoxModeProperty); }
set { this.SetValue(BoxModeProperty, value); }
}
}
}
Merci à l'avance.
Définir * "ne rend pas correctement" *. Quelle est la production attendue et quelle est la production réelle? – Heinzi
La sortie attendue serait soit un bloc de texte et un autre bloc de texte, soit un bloc de texte et une zone de texte. Ce que je reçois est une boîte avec un cercle rouge et un X blanc à l'intérieur du cercle ou rien. Basé sur comment j'essaie de l'exécuter. – chris