问题:我有一个新制作的 UserControl,在父 Grid 中有几个 Telerik 控件,以便能够在整个解决方案中使用它。听起来很简单吧?我创建了 UserControl,让我们调用 My.Project.Controls.Tool 类,然后我尝试使用命名空间调用另一个视图,xmlns:Controls="clr-namespace:My.Project.Controls;assembly=My.Project.GlobalUserControlDump"
然后通过从方便的花花公子 intellisense 轻松选择将其设置在视图中。
正如预期的那样,我的 UserControl 出现在设计器的单独视图中就好了。所以我采取下一个正常步骤并构建它......一旦构建完成(它做得很好,没有按预期报告错误),小虫子消失了!xaml 当然仍然在视图中,但是它从设计器中消失了,并且它没有出现在构建的解决方案中?
困惑我回去,对 UserControl 进行快速更改,它会重新出现在设计器中。好的,我认为这一定是侥幸,所以我再次构建它......它又从设计师和构建的解决方案中消失了?
现在我可以继续可靠地重现这种情况。对 UserControl 稍作改动,它会重新出现在设计器中……然后构建它,它又会消失!
有人可以解释一下这个难题吗?使用 Caliburn Micro 在 SL(浏览器内外,但内置浏览器)中运行。任何对这个谜团的洞察力当然都非常感谢,希望另一双眼睛能抓住我的愚蠢。干杯!
为了澄清,这是用户控件中与前一个问题直接相关的内容。
<UserControl
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"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
mc:Ignorable="d"
x:Class="My.Project.Controls.DatePicker">
<Grid Width="90">
<telerik:RadDateTimePicker
InputMode="DatePicker"
SelectedDate="{Binding SelectedDate, Mode=TwoWay}"/>
<telerik:RadMaskedDateTimeInput
IsClearButtonVisible="False"
FormatString="{}{0:M/d/yy}"
SelectionOnFocus="SelectAll"
Value="{Binding SelectedDate, Mode=TwoWay}"/>
</Grid>
</UserControl>
然后我将直接在视图上调用它(它将位于 GlobalUserControlDump 项目中,如名称空间所示),一旦将名称空间添加到视图中,它就会按预期在智能感知中显示良好;
<UserControl
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"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
x:Class="My.Project.Views.RandomView"
xmlns:Controls="clr-namespace:My.Project.Controls;assembly=My.Project.GlobalUserControlDump"
mc:Ignorable="d">
<Grid>
<Controls:DatePicker />
</Grid>
</UserControl>
然后我通过暴露我需要的属性;
namespace My
{
public partial class DatePicker : UserControl
{
public static readonly DependencyProperty SelectedDateProperty =
DependencyProperty.Register("SelectedDate", typeof(DateTime), typeof(DatePicker), new PropertyMetadata(null));
public DatePicker()
{
// Required to initialize variables
DataContext = this;
}
public DateTime SelectedDate
{
get { return (DateTime)GetValue(SelectedDateProperty); }
set { SetValue(SelectedDateProperty, value); }
}
}
}
感谢您的查看,我目前仍然很难过。