0

Silverlight 5 で簡単なアプリケーションを作成して、別のアプリケーションからデータをプルする機能をテストしています。目標は、他のアプリケーションの汎用性をテストするために、できるだけ多くの入力タイプを用意することです。次のコードを使用して、このフォームの一部に DatePicker を追加しようとしています。

<sdk:DatePicker Grid.Row="3" Grid.Column="3" Height="25" Width="190" >
</sdk:DatePicker>

これは問題なく動作しますが、DatePicker の TextBox コンポーネントを読み取り専用にしたいと考えています。この理由は、このテキスト ボックスからテキストを取得して DataGrid に入れるため、有効な日付のみをこのテキスト ボックスに入力したいからです。どんな助けでも大歓迎です!私からさらに情報が必要な場合は、お尋ねください。

4

1 に答える 1

2

DatePicker から継承する独自のコントロールを作成します。

using System.Windows.Controls.Primitives;

public class ReadonlyDatePicker : DatePicker
{
    public override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
        var textBox = this.GetTemplateChild("TextBox") as DatePickerTextBox;
        textBox.IsReadOnly = true;
    }
}

ページ内のプロジェクトに名前空間を追加します。

xmlns:MyControls="clr-namespace:MyControlsNamespace"

次に、名前空間エイリアスを使用して DatePicker を参照します。

<MyControls:ReadonlyDatePicker Grid.Row="3" Grid.Column="3" Height="25" Width="190" >
</MyControls:ReadonlyDatePicker>
于 2012-06-27T18:26:06.810 に答える