スケジュール管理用のガントチャートのツールを作成しているときに独自に作成したTreeListViewで選択されている行に「▶」を出力したいと思ったのでいろいろいじってみた。
<修正前>
<修正後>
思ったより簡単にできた。さすがWPF!!
Xaml抜粋
<TextBlock Text=" ▶" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,0,3,0" Visibility="{Binding IsSelected,Converter={StaticResource visibilityConverter}, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType =TreeViewItem}}"/>
VisibilityConverter .cs
/// <summary>
/// ResizeRectangle.xamlで利用している
/// リサイズ用のThumbコントロールの表示非表示を制御している
/// </summary>
public class VisibilityConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool b = (bool)value;
return b ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
やっていることはTextBlockに「▶」の文字を入れておく。表示非表示の制御をバインディングとValueConverterインターフェイスを実装。
バインディングは、親のTreeViewItemのIsSelectedプロパティを取得し、取得したプロパティの値(bool型)をValueConveterでVisibilityの値(列挙体のVisibility)に変換している。
試しに使っているといろいろ気になることがあるので修正中。果たして完成はいつになるのやら。
登録:
コメントの投稿 (Atom)
PowerShellでemlファイルを閲覧する
1.PowerShellでemlファイルを見たい! メールについてデータ量が多くなってきた関係で.emlファイルとして抽出して、ZIP圧縮しているが、過去のメールを検索する方法がなくて困っていた。ネットのフリーソフトを使うことも考えたが、処理速度を気にしなければPowerShe...
-
TreeListView上でコンボボックスを利用するときにフォーカスのあるコンボボックスの色をイベントで変えようとしたけど上手くいかなかった。 色々と調べているとXaml側のテンプレートをいじる必要があるみたいだったので、いろいろとやってみた。 とりあえず、コンボボックス...
-
サイトに自動でログインするVBSのソース 事前に対象のWebサイトを開いて、F12キーを押下して、要素の名前を調べておく。 ※Edge、Chromeなどのブラウザ objIE.Visible = Trueの部分を objIE.Visible = Falseにしておけば...
-
開発中のプログラムがあまり進んでないのでSQLの小ネタ。 昔、よくあった遅いSQLの改善方法について、記載。 インデックスを張ったりするのもいいけど、SQLを作るときにデータをたくさん持ってきてまとめて条件分岐をCASE式でするだけで 圧倒的に速度が改善できる。 例えば...
0 件のコメント:
コメントを投稿