Extended Controls - DirectorySelectDialog

 ディレクトリ選択ダイアログです。

ページ内リンク

基本的な使い方

 DirectorySelectDialog コントロールは、ディレクトリを選択し、そのフルパスを取得するためのダイアログで、Window クラスから派生したコントロールです。 DirectorySelectDialog コントロールを使用したサンプルコードを以下に示します。 8 行目の BooleanToVisibilityConverter クラスは、 true/false である Boolean 型を Visible/Hidden/Collapsed である Visibility クラスに変換するためのコンバータで、 データバインドの際に使用するためにこのように StaticResource として定義しています。

<YK:Window x:Class="Section4_5.Views.MainView"
           xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
           xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
           xmlns:YK="clr-namespace:YKToolkit.Controls;assembly=YKToolkit.Controls"
           xmlns:YKb="clr-namespace:YKToolkit.Controls.Behaviors;assembly=YKToolkit.Controls"
           Title="MainView" Height="300" Width="300">
    <Grid>
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
            <TextBox Text="{Binding DirectoryName}" Width="200" Margin="10,0" />
            <Button Content="..."
                    YKb:DirectorySelectDialogBehavior.RoutedEvent="Button.Click"
                    YKb:DirectorySelectDialogBehavior.Title="フォルダ選択"
                    YKb:DirectorySelectDialogBehavior.DirectoryName="{Binding DirectoryName}"
                    />
        </StackPanel>
    </Grid>
</YK:Window>
Code 1 : DirectorySelectDialog コントロールのサンプルコード
namespace Section4_5.ViewModels
{
    using YKToolkit.Bindings;

    public class MainViewModel : NotificationObject
    {
        private string directoryName;
        /// <summary>
        /// ディレクトリ名を取得または設定します。
        /// </summary>
        public string DirectoryName
        {
            get { return directoryName; }
            set { SetProperty(ref directoryName, value); }
        }
    }
}
Code 2 : DirectorySelectDialog コントロールのための ViewModel のサンプルコード
DirectorySelectDialog コントロールは Window クラスから派生したコントロールであるため、 XAML に直接記述するものではなく、子ウィンドウとして呼び出して使います。 上記のサンプルでは、YKToolkit.Controls.Behavior 名前空間に用意されている DirectorySelectDialogBehavior 添付ビヘイビアを使用することで、 ビヘイビア内部から呼び出して使用しています。

 DirectorySelectDialogBehavior は RoutedEvent、Title、DirectoryName という 3 つのプロパティを持っています。 RoutedEvent プロパティで指定されたルートイベントが発生すると、 Title プロパティで指定された文字列をタイトルとして持つ DirectorySelectDialog コントロールを呼び出します。 呼び出された DirectorySelectDialog で OK ボタンが押されたときのみ DirectorySelectDialogBehavior の DirectoryName プロパティが変更されるようになっています。

 サンプルコードでは、DirectorySelectDialog コントロールの OK ボタンが押されると、 MainView にある TextBox コントロールに選択されたディレクトリのフルパスが入力されるようになっています。

Fig.1 : DirectorySelectDialog コントロールのサンプル画面 (MainView の外観)
Fig.2 : DirectorySelectDialog コントロールの外観

Designed by CSS.Design Sample