Вот небольшой скрипт, который я использую для переключения между последними ветвями:
#!/bin/bash
# sudo bash
re='^[0-9]+ Использование этих двух псевдонимов
recent = for-each-ref --sort=committerdate refs/heads/ --format=' %(color:blue) %(authorname) %(color:yellow)%(refname:short)%(color:reset)'
recent-nf = for-each-ref --sort=committerdate refs/heads/ --format=' %(authorname) %(refname:short)'
Просто позвоните в git-репо, и он покажет вам последние N ветвей (по умолчанию 10) и число в каждой. Введите номер филиала и он проверяется:
if [[ "$1" =~ $re ]]; then
lines="$1"
else
lines=10
fi
branchs="$(git recent | tail -n $lines | nl)"
branchs_nf="$(git recent-nf | tail -n $lines | nl)"
echo "$branchs"
# Prompt which server to connect to
max="$(echo "$branchs" | wc -l)"
index=
while [[ ! ( "$index" =~ ^[0-9]+$ && "$index" -gt 0 && "$index" -le "$max" ) ]]; do
echo -n "Checkout to: "
read index
done
branch="$( echo "$branchs_nf" | sed -n "${index}p" | awk '{ print $NF }' )"
git co $branch
clear
Использование этих двух псевдонимов
recent = for-each-ref --sort=committerdate refs/heads/ --format=' %(color:blue) %(authorname) %(color:yellow)%(refname:short)%(color:reset)'
recent-nf = for-each-ref --sort=committerdate refs/heads/ --format=' %(authorname) %(refname:short)'
Просто позвоните в git-репо, и он покажет вам последние N ветвей (по умолчанию 10) и число в каждой. Введите номер филиала и он проверяется:
По сути, вам нужно написать IValueConverter
, чтобы вы могли связать свойство Visibility
вашего TextBox
либо с полем Address
, либо с новым полем что вы создаете.
Если вы привязываетесь к полю Address
, вот как может выглядеть привязка ::
<TextBlock Text="{Binding Path=Address}"
Visibility="{Binding Path=Address, Converter={StaticResource StringLengthVisibilityConverter}}" />
И тогда StringLengthVisiblityConverter
может выглядеть примерно так:
public class StringLengthVisiblityConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null || value.ToString().Length == 0)
{
return Visibility.Collapsed;
}
else
{
return Visibility.Visible;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
// Don't need to implement this
}
}
Тогда вам просто нужно добавить свой конвертер в качестве ресурса, используя такой синтаксис (где src
отображается в пространство имен, где определен конвертер):
<src:StringLengthVisiblityConverter x:Key="StringLengthVisiblityConverter" />
Вы можете создать конвертер StringToVisibility
.
Он вернет Visibility.Visible
, если связанная строка is not null or empty
и Visibility.Collapsed
, если это так.
Используйте этот конвертер при связывании Address
со свойством Visibility
вашего TextBlock
.
<TextBlock Text="{Binding Path=Address}" Visibility="{Binding Address, Converter={StaticResource StringToVisibilityConverter}}" />