1

私のビューモデル

public class ExchangeViewModel : ViewModelBase
{
    ObservableCollection<string> _repo = new ObservableCollection<string>()
    {
        "CME",
        "CFE",
        "LIFFE"
    };

    #region Properties

    public ObservableCollection<string> Exchanges
    {
        get
        {
            return _repo;
        }
    }

    #endregion // Properties

    #region Constructors
    public ExchangeViewModel() { }



    #endregion // Constructors

}

私の見解

<Window x:Class="ListviewTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <ListView 
            Grid.Row="0" 
            Grid.Column="0"
            SelectionMode="Single"
            DataContext="{Binding}"
            >
        <ListView.View>
            <GridView>
                <GridViewColumn
                        DisplayMemberBinding="{Binding Exchanges}"
                        Header = "Exchange"
                        >
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>

</Grid>

そして、それらを app.xaml.cs でバインドします

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);

        MainWindow window = new MainWindow();

        // Create the ViewModel to which 
        // the main window binds.
        //string path = "Data/customers.xml";
        ExchangeViewModel viewModel = new ExchangeViewModel();



        // Allow all controls in the window to 
        // bind to the ViewModel by setting the 
        // DataContext, which propagates down 
        // the element tree.
        window.DataContext = viewModel;

        window.Show();
    }
}

しかし、アプリケーションを実行すると、リストビューが空になります。私のバインドされた交換プロパティは、バインディングが適切に行われていないことを示す呼び出しさえ受けません。

4

1 に答える 1

0

ItemsSourceListView には を指定する必要があります。これを試して:

<ListView ItemsSource="{Binding Exchanges}"
        Grid.Row="0" 
        Grid.Column="0"
        SelectionMode="Single" >
        <ListView.View>
            <GridView>
                <GridViewColumn
                    DisplayMemberBinding="{Binding}"
                    Header = "Exchange">
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>
于 2013-08-18T23:26:16.407 に答える