private InitializePlayerSummary ( object sender, |
||
sender | object | |
e | ||
return | void |
private void InitializePlayerSummary(object sender, EventArgs e)
{
var textBlock = (TextBlock)sender;
var player = textBlock.DataContext as Player;
// if (player != null && player.IsGlobalPlayer)
// {
// textBlock.Visibility = Visibility.Collapsed;
// return;
// }
string format;
if (player != null && player.IsGlobalPlayer)
{
format = Program.GameEngine.Definition.GlobalPlayer.IndicatorsFormat;
}
else
{
format = Program.GameEngine.Definition.Player.IndicatorsFormat;
}
if (format == null)
{
textBlock.Visibility = Visibility.Collapsed;
return;
}
var multi = new MultiBinding();
int placeholder = 0;
format = Regex.Replace(format, @"{#([^}]*)}", delegate(Match match)
{
string name = match.Groups[1].Value;
if (player != null)
{
Counter counter =
player.Counters.FirstOrDefault(
c => c.Name == name);
if (counter != null)
{
multi.Bindings.Add(new Binding("Value") { Source = counter });
return "{" + placeholder++ + "}";
}
}
if (player != null)
{
Group group =
player.IndexedGroups.FirstOrDefault(
g => g != null && g.Name == name);
if (@group != null)
{
multi.Bindings.Add(new Binding("Count") { Source = @group.Cards });
return "{" + placeholder++ + "}";
}
}
return "?";
});
multi.StringFormat = format;
textBlock.SetBinding(TextBlock.TextProperty, multi);
}