كيف يمكنني تحديث التسمية التي هي في ControlTemplate من شريط الأدوات في برنامج الأغذية العالمي؟
-
03-07-2019 - |
سؤال
ولدي ControlTemplate التي تتكون من ToolBarTray وشريط الأدوات. في شريط الأدوات، لدي العديد من الأزرار وثم تسمية. أريد أن أكون قادرا على تحديث التسمية في شريط الأدوات مع شيء من هذا القبيل "1 من 10"
وفكرتي الأولى هي أن يجد برمجيا التسمية وضعه، ولكن أنا أقرأ أن هذا يجب أن يتم ذلك مع النوابض. أواجه صعوبة في فهم كيفية تحقيق ذلك. أي أفكار؟
<Style x:Key="DocViewerToolBarStyle" TargetType="{x:Type ContentControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContentControl}">
<ToolBarTray... />
<ToolBar.../>
<Button../>
<Button..>
<Label x:Name="myStatusLabel" .. />
المحلول
والغرض من ControlTemplate هو تحديد شكل عنصر تحكم. لمشكلتك، وأنا لست متأكدا مما اذا كان قالب عنصر تحكم هو الحل الصحيح.
وكما يشير براين أيضا، يجب عليك ربط المحتوى م> ملكا للتسمية إلى الممتلكات التي هي موجودة في التحكم الخاصة بك بالفعل. وينبغي أن يتم ذلك عن طريق <م> TemplateBinding م>.
<Label x:Name="myStatusLabel" Content={TemplateBinding MyStatusLabelProperty} ../>
والخاصية <م> MyStatusLabelProperty م> ثم أن الوجود في الدرجة التحكم الخاصة بك. عادة، هل خلق الخاصة بك UserControl م> الذي له خاصية تبعية من النوع الصحيح (إما كائن أو سلسلة) الذي يسمى MyStatusLabelProperty.
نصائح أخرى
وأود أن تعيين التسمية إلى "المحتوى" سمة من التحكم الخاصة بك منها مثلا.
<Label x:Name="myStatusLabel" Content="{TemplateBinding Content}"/>
وبعد ذلك يمكنك تعيين نص التسمية الخاص بك مع السمة المحتوى الخاص بك هرم وجوه و.
وأود أن خلق نموذج عرض الذي ينفذ اجهة INotifyPropertyChanged واستخدام DataTemplate لعرضه باستخدام شيء من هذا القبيل:
<DataTemplate DataType={x:Type viewmodel:MyToolBarViewModel}>
<Label Content={Binding CurrentPage} />
<Label Content={Binding TotalPages} ContentStringFormat="{}of {0}" />
</DataTemplate>
<ToolBar>
<ContentPresenter Content={Binding <PathtoViewModel>} />
</ToolBar>
ومع استخدام الارتباطات لم يكن لديك لتحديث صراحة محتوى التسمية. تم تعيين كل ما عليك القيام به قيمة العقار في نموذج عرض ورفع الحدث PropertyChanged الصحيح الذي يتسبب في التسمية لتحديث محتواه.