【问题标题】:WPF Binding nightmaresWPF 绑定噩梦
【发布时间】:2011-02-24 05:24:23
【问题描述】:

所以我有一个类

public class ObjectDataModel
{
    public ObservableCollection<ObjectClassA> MyObjectCollection;
}

public class ObjectClassA
{
    public ObjecttypeA myobject;
    public BitmapImage mybmp;
}

现在我有一个网格控件,我希望将其 ItemsSource 绑定到 MyObjectCollectionmyObject

怎么做?

【问题讨论】:

    标签: c# .net wpf binding itemssource


    【解决方案1】:

    您必须将您的绑定目标公开为 Properties 而不是 Fields(就像您目前所做的那样)。

    <Window>
    <Window.DataContext><local:ObjectDataModel/></Window.DataContext>
    <Grid>
    <ListView ItemsSource={Binding MyObjectCollection}/>
    </Grid>
    </Window>
    

    【讨论】:

    • 要对此进行扩展,这些属性需要 getter 和 setter,并且您希望更改的任何数据都需要实现 INotifyPropertyChanged 并引发 PropertyChanged 事件,以便数据绑定知道更新值。
    【解决方案2】:

    您是否尝试过实现这一点,如果是,那么如果您可以发布您的 XAML 代码,那就太好了。

    据我了解,这是使用此类的正确方法-

        <ItemsControl
            Margin="5,0,5,5"
            ItemsSource="{Binding Path=MyObjectCollection}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Grid >
                        <TextBlock
                            Grid.Column="0"
                            Margin="0,5,0,0"
                            Width="Auto"
                            Text="{Binding Path=myobject.Property1}" />
                    </Grid>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      • 2020-03-14
      • 2010-11-13
      • 2010-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多