gpt4 book ai didi

silverlight - Silverlight 中自定义行为和触发器的设计时问题

转载 作者:行者123 更新时间:2023-12-01 05:43:54 26 4
gpt4 key购买 nike

我已经实现了一些自定义行为和触发器,并通过 XAML 添加了它们。它们在运行时工作正常,但会阻止 Cider 设计器 View 在设计时加载,并且可能也会在 Blend 中引起问题,尽管我还没有证实这一点。

这是我为其中一种行为实现的概述;希望有人能指出我所缺少的。

行为看起来像这样;

using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Interactivity;

namespace MiX.Core.UI.Silverlight
{
public class UpdateOnTextChangedBehavior : Behavior<TextBox>
{
protected override void OnAttached()
{
base.OnAttached();
this.AssociatedObject.TextChanged += OnAssociatedObjectTextChanged;
}

void OnAssociatedObjectTextChanged(object sender, TextChangedEventArgs e)
{
BindingExpression binding = this.AssociatedObject.GetBindingExpression(TextBox.TextProperty);
if (binding != null)
{
binding.UpdateSource();
}
}

protected override void OnDetaching()
{
base.OnDetaching();
this.AssociatedObject.TextChanged -= OnAssociatedObjectTextChanged;
}
}
}

XAML 中的实现如下所示;
<TextBox x:Name="Username" Text="{Binding Username,Mode=TwoWay}" BorderThickness="1" Style="{StaticResource TextBoxStyleGeneral}" Foreground="#FF333333" FontSize="10" BorderBrush="{x:Null}" Grid.Column="1" d:LayoutOverrides="GridBox" Margin="2,0" Grid.ColumnSpan="2" Background="{x:Null}" VerticalAlignment="Center" Grid.Row="1">
<i:Interaction.Behaviors>
<mixcore:UpdateOnTextChangedBehavior/>
</i:Interaction.Behaviors>
</TextBox>

在 XAML 编辑器中, <mixcore:UpdateOnPasswordChangedBehavior/>元素以波浪线突出显示并报告错误 无法将“UpdateOnTextChangedBehavior”类型的值添加到“BehaviorCollection”类型的集合或字典中 .尝试在“设计” View 中查看时,设计器无法加载,说明 该文档包含必须在加载设计器之前修复的错误 .

最佳答案

在 Silverlight 中,如果设计无法加载我们在代码中所做的更改,那么这是 Silverlight 中的错误。

Silverlight 尚未设计为通过代码处理各种异常,例如,如果您确实有任何返回类型的代码,并且您没有在那里检查 null,那么它又不会加载设计器,这种情况主要通过覆盖 IValueConverter 看到方法 {x:Static} ...等等

除非编译正常并且不抛出异常,否则您的代码没有任何问题。
不用担心设计师。

同样,您可以查看一个案例:
http://connect.microsoft.com/VisualStudio/feedback/details/361509/xaml-designer-cannot-handle-typename-with-nested-classes

关于silverlight - Silverlight 中自定义行为和触发器的设计时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3554707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com