好吧,所以我有一個WPF DataGrid綁定到產品集合。 Product類具有一個名爲ParentNumber的屬性和兩個導航屬性Product Parent
和ICollection<Product> SubProducts
。綁定ChildCollection WPF DataGridColumn與IValueConverter
我想在我的DataGrid中用小圖像指示什麼產品是兒童,什麼產品是父母。
在我的DataGrid中,我有一個包含兩個圖像的列。如果parentNumber不爲null,則第一個圖像的可見性屬性綁定到parentNumber,並返回System.Windows.Visibility.Visible。這部分很容易。
所以我的問題是我如何能做到父產品相同?我綁定什麼?我需要在我的課堂中添加其他屬性嗎?做這個的最好方式是什麼?
我已經在產品類的所有屬性上實施了INotifyPropertyChanged。
下面是代碼:
<DataGridTemplateColumn Header="Productnr" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Height="16"
Margin="0,0,5,0"
Source="{StaticResource ChildImage}"
Visibility="{Binding Path=IsChild,
Mode=OneWay,
Converter={StaticResource BoolToVisibilityConverter}}" />
<Image Height="16"
Margin="0,0,5,0"
Source="{StaticResource ParentImage}"
Visibility="{Binding ???? />
<TextBlock Text="{Binding Path=ProductNumber}" />
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
public class Product : INotifyPropertyChanged
{
public string ProductNumber { get; set; }
public string ParentNumber
{
get
{
return _parentNumber;
}
set
{
_parentNumber = value;
OnPropertyChanged("ParentNumber");
}
}
public virtual Product Parent { get; set; }
public virtual ICollection<Product> SubProducts
{
get
{
return _subProducts;
}
set
{
_subProducts = value;
OnPropertyChanged("SubProducts");
}
}
...
}
是向產品添加一個屬性以標識它是否爲父母。你的意思是把現有的知名度視爲TwoWay?轉換器如何知道PartNumber返回的內容?在產品中,我會有兩個屬性IsParent和IsChild。在我看來,轉換器中的IsParent是UI中的業務邏輯。 – Paparazzi
好的,我會測試它,它是有道理的。我只是認爲我並不需要爲此目的添加屬性,因爲我已經有父類和childCollection。 – Dux
如果你已經擁有了它,那麼它對我來說就不清楚了。嘗試另一個轉換器。? – Paparazzi