私はこの独自のクラスを持っています:
public class PeriodContainerPanel:StackPanel
{
public PeriodContainerPanel()
: base()
{
addCollectionsToStackPanel();
}
private void addCollectionsToStackPanel()
{
this.Children.Clear();
if (PeriodsList!=null)
{
double minutes = PeriodsList.Count * (Properties.Settings.Default.EndTimeSpan - Properties.Settings.Default.StartTimeSpan).TotalMinutes;
foreach (ObservableCollection<PeriodBase> lst in PeriodsList)
{
this.Children.Add(new ChartUserControl(lst) { Minutes = minutes });
}
}
}
public List<ObservableCollection<PeriodBase>> PeriodsList
{
get { return (List<ObservableCollection<PeriodBase>>)GetValue(PeriodsListProperty); } //do NOT modify anything in here
set { SetValue(PeriodsListProperty, value); addCollectionsToStackPanel(); } //...or here
}
public static readonly DependencyProperty PeriodsListProperty =
DependencyProperty.Register(
"PeriodsList", //Must be the same name as the property created above
typeof(List<ObservableCollection<PeriodBase>>), //Must be the same type as the property created above
typeof(PeriodContainerPanel), //Must be the same as the owner class
new UIPropertyMetadata(
null //default value, must be of the same type as the property
));
}
そして、私はこれDependencyProperty
PeriodList
を次のUserControl
ように使用します:
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<UI:PeriodContainerPanel PeriodsList="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=DataContext}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
取得プロセスがあるかどうかを確認しConvertor
ます(値がある場合)はい、値があり、正しいですが、PeriodsList
プロパティに設定されていません。問題は何ですか?PSコードについて質問がある場合は、教えてください。追加できます