Я просил, то на что ссылается {StaticResource CellTemplate}.
где RelativeSource использется к контексте привязки данных? я вижу только в командах и контекстном меню.
Свойство RawOn не найдено для объекта типа TDateTimeControl. — это скорее всего означет что binding source — сам TDateTimeControl, двойное внимание на использование RelativeSource={RelativeSource Self}
постарайтесь привязываться к данным а не к UI элементам.
я не про тип а про источник aka source, где сидит значение — это VM, родительский контрол или что то еще + покажите CellTemplate, странно по крайней мере на уровне названия что дочерний контрол localR:TDateTimeControl имеет темплейт с таким именем.
самое простое соберите простенький проект с офлайн данными и опубликуйте на фитхабе — я посмотрю. на вид все слишком сложно огранизовано, зачем вам свои кастом контролы — вы же не телерик какой то верно? гораздо проще сделать темплейт (не контрол а дата темплейт), расшерить его через статик ресурс и юзать где надо. От код бихайнд в 99% случаев надо озбавляться. применяйте MVVM ставьте datacontext корневому вью и дайте работать байдингам.
Хочу вставить свой контрол(TDateTimeControl) в ListView но не получается привязать данные к нему , а остальные ячейки привязываются и отображаются
а моему контролу не передаётся дата.
пишет 2 ошибки:
Не удается найти источник: RelativeSource FindAncestor, AncestorType='System.Windows.Controls.ContentPresenter', AncestorLevel='1'.
Свойство RawOn не найдено для объекта типа TDateTimeControl.
Может подскажите в чём косяк или пример подскажете?
Здравствуйте, 尿컙拋㕪⬎⤇Ǥ꧃푙刾ꄔ, Вы писали:
尿Ǥ푙>можно попробовать:
尿Ǥ푙><localR:TDateTimeControl DataContext={Binding} Value="{Binding RawOn}" Content="{StaticResource CellTemplate}"/>
не помогло даже в редакторе синим подчёркивает 尿Ǥ푙>Ошибка с RelativeBinding откуда из CellTemplate оли откуда то еще?
да из-за него 尿Ǥ푙>Универсальный совет — упрощайте свой контрол до тех пор, пока не начнет работать и добавляйте постепенно функционал после. тумчач-тусун ат иц бест.
Здравствуйте, 尿컙拋㕪⬎⤇Ǥ꧃푙刾ꄔ, Вы писали:
尿Ǥ푙>редактор — не показатель. RawOn свойство чего?
RawOn это DateTime хочу чтобы он в localR:TDateTimeControl в свойство Value подставлялся причем для каждой строки свой
(в ItemsSource я свой лист забросил и остальные паля там появляются)
Здравствуйте, 尿컙拋㕪⬎⤇Ǥ꧃푙刾ꄔ, Вы писали:
尿Ǥ푙>я не про тип а про источник aka source, где сидит значение — это VM, родительский контрол или что то еще + покажите CellTemplate, странно по крайней мере на уровне названия что дочерний контрол localR:TDateTimeControl имеет темплейт с таким именем.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace IS_Outages.Out6
{
/// <summary>
/// Логика взаимодействия для ManuallyControl.xaml
/// </summary>
public partial class ManuallyControl : UserControl
{
public class ManuallyData
{
public DateTime On { get; set; }
public int CountTP { get; set; }
public int Count1 { get; set; }
public int Count2 { get; set; }
public int Count3 { get; set; }
public int Count4 { get; set; }
public int CountNP { get; set; }
public int CountBOIL { get; set; }
public int CountZS { get; set; }
public int CountBRD { get; set; }
public int CountFM { get; set; }
public int CountANML { get; set; }
public int Count1CAT { get; set; }
public int CountMED { get; set; }
public int CountNURS { get; set; }
public int CountSCHOOL { get; set; }
public int CountIND { get; set; }
public int CountLEG { get; set; }
public ManuallyData()
{
On = DateTime.Now;
}
}
public IList<TOut6ViewDetailsItem> ManuallyStage { get { return _manuallyStage; } set { _manuallyStage = value; } }
public IList<TOut6ViewDetailsItem> _manuallyStage = new List<TOut6ViewDetailsItem>() {new TOut6ViewDetailsItem()};
public ManuallyControl()
{
InitializeComponent();
}
Здравствуйте, 尿컙拋㕪⬎⤇Ǥ꧃푙刾ꄔ, Вы писали:
尿Ǥ푙>постарайтесь привязываться к данным а не к UI элементам.
действительно косяк... Посадил свой контрол на форму и привязал вручную ( в функции TabControl_SelectionChanged() там же и создание manuallyControl и присваевание родителя )
manuallyControl.td1.SetBinding(TDateTimeControl.ValueProperty, new Binding()
{
Mode = BindingMode.Default,
Source = manuallyControl,
Path = new PropertyPath("dateTime1"),
});
после выполнения привязки данные появляются в свойстве Value но после выхода из функции привязка пропадает вместе со значением
в чём косяк?
раньше похожее встречал в томже проекте — при смене родительского контрола автоматом менялся DataContext и привязка обнулялась...
Здравствуйте, 尿컙拋㕪⬎⤇Ǥ꧃푙刾ꄔ, Вы писали:
尿Ǥ푙>самое простое соберите простенький проект с офлайн данными и опубликуйте на фитхабе — я посмотрю. на вид все слишком сложно огранизовано, зачем вам свои кастом контролы — вы же не телерик какой то верно? гораздо проще сделать темплейт (не контрол а дата темплейт), расшерить его через статик ресурс и юзать где надо. От код бихайнд в 99% случаев надо озбавляться. применяйте MVVM ставьте datacontext корневому вью и дайте работать байдингам.
Сделал проэкт попроще ... помогло ... оказывается в RelativeSource={RelativeSource Self} было дело — он в контроле был и мешал привязке...