Skip to content

Instantly share code, notes, and snippets.

View damirarh's full-sized avatar

Damir Arh damirarh

View GitHub Profile
var array = new string[] { };
Assert.IsTrue(((IList<string>)array).IsReadOnly);
Assert.IsFalse(((IList)array).IsReadOnly);
var listToModify = new List<string>();
var listNotToModify = new List<string>();
var bindingListWrapper = new BindingList<string>(listToModify); // wrapper modifies inner list
var bindingListCopy = new BindingList<string>(listNotToModify.ToList()); // doesn't change original list
<ListView IsItemClickEnabled="True"
ItemsSource="{Binding Items}"
ItemClick="OnItemClick" />
public static class AttachedProperties
{
public static DependencyProperty ItemClickCommandProperty =
DependencyProperty.RegisterAttached("ItemClickCommand",
typeof(ICommand),
typeof(AttachedProperties),
new PropertyMetadata(null, OnItemClickCommandChanged));
public static void SetItemClickCommand(DependencyObject target, ICommand value)
{
<ListView IsItemClickEnabled="True"
ItemsSource="{Binding Items}">
<i:Interaction.Behaviors>
<local:ItemClickedBehavior ItemClickedCommand="{Binding ItemClickedCommand}" />
</i:Interaction.Behaviors>
</ListView>
<ListView IsItemClickEnabled="True"
ItemsSource="{Binding Items}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="ItemClick">
<i:InvokeCommandAction Command="{Binding ItemClickedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ListView>
<Page.Resources>
<b:NameScopeBinding x:Key="ListView" Source="{Binding ElementName=ListView}" />
</Page.Resources>
<ListView x:Name="ListView"
SelectionMode="Single"
IsItemClickEnabled="True"
ItemsSource="{Binding Items}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="ItemClick">
<Grid Width="60" Height="60"
VerticalAlignment="Top"
Background="{StaticResource PhoneAccentBrush}">
<Image Source="{Binding LogType, Converter={StaticResource EnumToImageConverter}}" />
</Grid>
public class EnumToImageConverter : IValueConverter
{
public string SubFolder { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is Enum && targetType == typeof(ImageSource))
{
var enumType = value.GetType();
var format = String.IsNullOrEmpty(SubFolder) ? "/Assets/{0}/{2}.png" : "/Assets/{0}/{1}/{2}.png";
private async Task<byte[]> ReadAsync(string filename)
{
var fileInfo = new FileInfo(filename);
using (var stream = new FileStream(filename, FileMode.Open))
{
var buffer = new byte[fileInfo.Length];
await Task<int>.Factory.FromAsync(stream.BeginRead, stream.EndRead, buffer, 0, buffer.Length, null);
return buffer;
}
}