我继承了UserControl来添加一些功能,而且效果很好。 MyUserControl在一个不同的项目中,我只是在主项目中使用它,问题是我随时打开xaml它将不会呈现,直到我进行更改和构建。之后布局会一直刷新,但是如果我关闭用户控件并重新打开它,除非我构建,否则它不会显示任何内容。 这是xaml
<cc:FormUserControl x:Class="Module.Options.Views.Accounting.Views.JournalFormView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cc="clr-namespace:Module.Common.Controls;assembly=Module.Common">
<TextBox Grid.Row="1" Text=”Some Text” />
</cc:FormUserControl>
这是c#
public class FormUserControl : UserControl, IView
{
public FormUserControl()
{
SetValue(ViewModelLocator.AutoWireViewModelProperty, true);
}
public override void EndInit()
{
if (CanRefresh)
{
Resources.MergedDictionaries.Add(
new ResourceDictionary().AddResource("/Resource.Dictionaries;component/Styles/MyControlStyle.xaml"));
Style = FindResource("MyserControlStyle") as Style;
}
base.EndInit();
}
public bool CanRefresh
{
get { return (bool)GetValue(CanRefreshProperty); }
set { SetValue(CanRefreshProperty, value); }
}
public static readonly DependencyProperty CanRefreshProperty =
DependencyProperty.Register("CanRefresh", typeof(bool), typeof(FormUserControl), new PropertyMetadata(false));
}
这段代码没有什么特别之处,我不知道为什么它在我做完之前不会刷新。这两个文件位于不同的项目中,xaml将在我添加空间和构建等任何更改时立即生效。 有任何想法吗?
亲切的问候
答案 0 :(得分:1)
在对其他项目中的UserControl
进行更改后,设计人员会发现它显示的UserControl
已过期。因此,您需要构建/重建解决方案,以便设计人员可以赶上并在设计器上显示最新的更改。
当您构建或运行解决方案时,事情应该没问题。