LoginSignup
1
1

More than 5 years have passed since last update.

Visual Studio / WPF > ObjectDataProvider > インデックス付き乱数のListBox表示 | IEnumerable | yield return

Last updated at Posted at 2017-06-08
動作環境
Windows 7 Pro (32bit)
Microsoft Visual Studio 2017 Community
Sublime Text 2

http://gushwell.ldblog.jp/archives/52333267.html
を参考にObjectDataProvider を用いて作成クラスの関数を使う例を勉強中。

インデックスをつけてみた。

MainWindow.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace _170606_t1333_ObjectDataProvider
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
    public class NumberUtil
    {
        public IEnumerable<int> GetRandomNumbers()
        {
            var rnd = new Random();
            for (int idx=0; idx<12; idx++)
            {
                yield return rnd.Next(100, 1000);
            }
        }
        public IEnumerable<int> GetIndexNumbers()
        {
            for (int idx = 0; idx < 12; idx++)
            {
                yield return idx;
            }
        }
    }
}
MainWindow.xaml
<Window x:Class="_170606_t1333_ObjectDataProvider.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:_170606_t1333_ObjectDataProvider"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <ObjectDataProvider ObjectType="{x:Type local:NumberUtil}"
                            MethodName="GetRandomNumbers" x:Key="RandomNum"/>
        <ObjectDataProvider ObjectType="{x:Type local:NumberUtil}"
                            MethodName="GetIndexNumbers" x:Key="IndexNum"/>
    </Window.Resources>
    <Grid>
        <StackPanel Orientation="Horizontal">
            <ListBox Height="300"
                 ItemsSource="{Binding Mode=OneWay, Source={StaticResource IndexNum}}"/>
            <ListBox Height="300" Margin="5"
                 ItemsSource="{Binding Mode=OneWay, Source={StaticResource RandomNum}}"/>
        </StackPanel>
    </Grid>
</Window>

2017-06-08_10h30_00.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1