問題:ソリューション全体で使用できるように、親グリッドにいくつかのテレリック コントロールを持つ新しく作成された UserControl があります。シンプルに聞こえますよね?私は UserControl を作成しました。クラス My.Project.Controls.Tool を呼び出しましょう。これを名前空間xmlns:Controls="clr-namespace:My.Project.Controls;assembly=My.Project.GlobalUserControlDump"
で別のビューに呼び出して、便利なダンディ インテリセンスから簡単に選択してビューに設定しようとしました。
これは期待どおりです。私の 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); }
}
}
}
見てくれてありがとう、私はまだ困惑しています。