2011-02-10 4 views
1

Maintenant, je viens de recevoir AG_E_PARSER_BAD_PROPERTY_VALUE. Je pense que c'est parce que je n'ai rien fait à ma propriété de liaison. Est-ce que je peux faire quelque chose?Comment lier une valeur à la propriété de contrôle utilisateur?

    <ListBox.ItemTemplate> 
         <DataTemplate> 
          <StackPanel Orientation="Horizontal"> 
           <Image Name="imgSvrIco" Source="{Binding pic}"/> 
           <StackPanel Orientation="Vertical" Margin="2,2,2,10" Tag="{Binding tag}" MouseLeftButtonUp="StackPanel_MouseLeftButtonUp_1"> 
            <TextBlock Name="lbTitle" Text="{Binding title}" Margin="0,0,0,0" FontWeight="Bold" /> 
            <TextBlock Text="{Binding text}" Visibility="{Binding textVisibility}"/> 
            <StackPanel Orientation="Horizontal"> 
             <TextBlock Text="{Binding time}"/> 
             <TextBlock Text=" By " /> 
             <!--<my:UserBrand Address="{Binding address}" />--> 
            </StackPanel> 
           </StackPanel> 
          </StackPanel> 
         </DataTemplate> 
        </ListBox.ItemTemplate> 

Le code commenté est le contrôle utilisateur

at MS.Internal.XcpImports.CheckHResult(UInt32 hr) 
    at MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize) 
    at System.Windows.FrameworkElement.MeasureOverride(Size availableSize) 
    at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight) 
    at MS.Internal.XcpImports.MeasureNative(IntPtr element, Single inWidth, Single inHeight) 
    at MS.Internal.XcpImports.UIElement_Measure(UIElement element, Size availableSize) 
    at System.Windows.UIElement.Measure(Size availableSize) 
    at System.Windows.Controls.VirtualizingStackPanel.MeasureChild(UIElement child, Size layoutSlotSize) 
    at System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(Size constraint) 
    at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight) 
    at MS.Internal.XcpImports.MeasureOverrideNative(IntPtr element, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight) 
    at MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize) 
    at System.Windows.FrameworkElement.MeasureOverride(Size availableSize) 
    at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight) 

Le contrôle XAML

<UserControl x:Class="Shisoft_Express_Communicate_mobile.controls.UserBrand" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    FontFamily="{StaticResource PhoneFontFamilyNormal}" 
    FontSize="{StaticResource PhoneFontSizeNormal}" 
    Foreground="{StaticResource PhoneForegroundBrush}" 
    d:DesignHeight="34" d:DesignWidth="395"> 
     <StackPanel HorizontalAlignment="Stretch" Name="stackPanel1" VerticalAlignment="Stretch" Orientation="Horizontal" Margin="0,0,0,-1"> 
      <Image Name="image1" Stretch="Uniform" Width="32" Height="32" VerticalAlignment="Center" /> 
      <TextBlock Name="textBlock1" Text="TextBlock" TextWrapping="NoWrap" Margin="3,0,0,0" /> 
     </StackPanel> 
</UserControl> 

le contrôle cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Shapes; 
using System.Text.RegularExpressions; 
using Shisoft_Express_Communicate_mobile.userinfos; 
using System.Windows.Media.Imaging; 

namespace Shisoft_Express_Communicate_mobile.controls 
{ 
    public partial class UserBrand : UserControl 
    { 
     public UserBrand() 
     { 
      InitializeComponent(); 
     } 
     private String _address; 
     public String address 
     { 
      get { return _address; } 
      set 
      { 
       _address = value; 
       //sinat:[email protected]:::shisoft 
       String[] strs = Regex.Split(_address, ":::"); 
       String imgCode; 
       String labText; 
       if (strs[0] != "user" && strs[0] != "contact") 
       { 
        imgCode = strs[0].Split(':')[0]; 
       } 
       else 
       { 
        imgCode = strs[0]; 
        if (imgCode == "contact") 
        { 
         if (global.ContactIDTomName.ContainsKey(long.Parse(strs[1]))) 
         { 
          strs[1] = global.ContactIDTomName[long.Parse(strs[1])]; 
         } 
        } 
       } 
       labText = strs[1]; 
       ImageSource imgsrc1 = new BitmapImage(new Uri(SEC_Services.Httprequest.BaseURL + "images/svr-icons/" + imgCode + ".png")); 
       this.image1.Source = imgsrc1; 
       this.textBlock1.Text = labText; 
      } 
     } 


    } 
} 
+0

Publiez votre code de liaison ici. – decyclone

+0

Quel est le type de la propriété Address et la valeur de l'adresse? –

+0

@BMiloshevska Les deux sont 'String' – Shisoft

Répondre

0

info insuffisante.

L'exception AG_E_PARSER_BAD_PROPERTY_VALUE contient le pointeur exact (c'est-à-dire la ligne/position dans le fichier Xaml) où le problème est survenu. Trouvez-le, identifiez l'endroit dans le code Xaml et essayez de le réparer. Deuxièmement, même si vous nous avez montré la position Xaml, nous n'avons pu vérifier que les erreurs syntaxiques en masquant la sémantique - la corresp. Code C#

Vous dites "Je suis sûr que l'expression de liaison est correcte", mais est souvent quelque chose facilement négligeable, comme "adresse" au lieu de "adresse". (Utilisez-vous vraiment des conventions de nommage non standard?)

+0

Le pointeur est 'Line: 9 Position: 59'.Mais je ne peux pas trouver quelque chose lié à ce problème à ce stade. – Shisoft

+0

Si vous voulez de l'aide, alors révélez-nous l'emplacement Xaml où pointe "Ligne 9, Position 59". Et aussi le code C# associé. –

+0

Ok, le dernier essai. Si vous fournissez des informations complètes, je vais examiner cela. –

Questions connexes