두 개의 버튼이있는 사용자 정의 창이 있습니다. 한 버튼의 이름은 OKButton이고 다른 버튼의 이름은 취소 버튼입니다.사용자 정의 컨트롤의 요소를보기에 액세스 가능하게 설정하여 명령에 구독하는 방법?
<Style TargetType="{x:Type WindowCustom}">
"Properties Here"
<Setter.Value>
<ControlTemplate TargetType="{x:Type WindowCustom}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Button x:Name="OKButton" Content="OK"/>
<Button x:Name="CancelButton" Content="Cancel"/>
"Closing Tags"
내가 CLR 속성이있는 템플릿 부분을 만든 그 OnApplyTemplate 메서드에서 인스턴스를 가져옵니다 "OKButton"에 대한.
private const string OKButtonPart = "PART_OKButton";
private Button oKButton;
public Button OKButton
{
get { return oKButton; }
set
{
if (oKButton != null)
{
oKButton.Click += OKButtonClick;
oKButton.Loaded += OKButtonLoaded;
}
oKButton = value;
}
}
public override void OnApplyTemplate()
{
OKButton = GetTemplateChild(OKButtonPart) as Button;
}
사용자 지정 창을 만드는 데 필요한 다른 모든 코드가 있다고 가정합니다. 내 OKButton을 내가 원하는대로 할 수 있도록 몇 가지 라우트 된 명령을 작성했습니다. 버튼의 내 이전 구현
<Button>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="SaveHistoryEntry" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
가 어떻게 동작 메시지에 추가 XAML을 통해 내 컨트롤에 액세스 할 ActionMessage (명령을 말하는 Caliburns 방식)를 사용하기 때문에 적합하지 않습니다? 내가 할 수있는 것은 사용자 정의 윈도우에 내 버튼 컨트롤의 이름을 쓰는 것입니다.
<lc:WindowCustom OKButton="">
여기에서 무엇을해야할지 모르겠다.
곧 캘리브레이션으로 구현을 게시 할 예정입니다. 고마워 친구! – axelrotter